Sol_ASM version 0.03 released

Started by BogdanOntanu, March 30, 2005, 04:43:58 PM

Previous topic - Next topic

BogdanOntanu

Hi all,

I have restarted the Sol_Asm development and I've released the first version ...

It is like a toy now but hopefully it will become a more proffesional gun.
The road map end will be a full TASM/MASM replacement / clone with 16/32/64bits code generation for Windows, linux and FreeBSD and some minor improvements. First versions are more TASM oriented.

Enjoy it while it is still very simple and easy to understand ;)
BTW: source code is included.

Any comments / questions are welcomed ...



[attachment deleted by admin]
Ambition is a lame excuse for the ones not brave enough to be lazy.
http://www.oby.ro

BogdanOntanu

Other download sites are:
www.hostileencounter.com/sol_asm/sol_asm_2005_03_30.zip
www.oby.ro/sol_asm/sol_asm_2005_03_30.zip
Those sites contain a debug version also that generates the ods.txt file where you can see detail of its modus operandus.

What it does:
-Output: bin only for now
-assembles some 32bit instructions (not all yet)
-labels
-PROCS, ARGS, LOCAL, USES
-structures
-include files

It is very fast and nicely structured and easy to understand ;)

License is FASM / BSD style.



Ambition is a lame excuse for the ones not brave enough to be lazy.
http://www.oby.ro

Farabi

 :U I will try to analyze the function. Hope I can help you.  :red (But how?) :dazzled:
Those who had universe knowledges can control the world by a micro processor.
http://www.wix.com/farabio/firstpage

"Etos siperi elegi"

BogdanOntanu

Well there are many things to be done.

IF I may suggest some :p :
-COFF and OMF OBJ output modules
-ELF and AOUT OBJ output modules
-Finalize 32bits instructions encoding
-Add 16bits instructions encodings/mode
-Add 64bits instructions encodings/mode
-testing of existing encodings and reporting found bugs ... since there are many instructions combinations and i did not have time to check all variations not even from the ones that I did implemented :D
-it will probably need a LINKER a Librarian and a Resource compiler also
-adding MACROs support
-optinization for size/speed of generated code
-porting to MASM since I am more TASM biased as it is now.

Well honestly most of those things will be implemented by me anyway,
but it might speed things up if you guys come with some simple samples
or help with partial work for some of those issues :P

Since the project is free and open source i guess everybody will benefit.

Comunity can propose small changes to the MASM/TASM "standards"
(hopefully the kind that will not break existing source code).

Below are my propositions for example:
- i have already implemented /* */ block comments
- i will remove the need for PROTOtypes to be defined before usage, and I have other imprevements related to PROTO
- i will make invoke internal and capable to use variables defined after it.
- help / support for IDE's: assembler will emit vital parsing information like:
list of symbols, procedures and parameters with files locations and X-references
- probably in the end adding some support for OOP inside assembler (like TASM has)
Ambition is a lame excuse for the ones not brave enough to be lazy.
http://www.oby.ro

hutch--

Bogdan,

This looks great, I had a quick play with the test file in the root dir and it ran the 2 passes reasonably quickly on a source of 1.6 meg. I had a look at the output in hex and it looks like a raw binary file directly converting mnemonics to opcodes.
Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

tommy


Farabi

#6
I moved it to laboratory. Sorry for my mistake.  :red


[attachment deleted by admin]
Those who had universe knowledges can control the world by a micro processor.
http://www.wix.com/farabio/firstpage

"Etos siperi elegi"

ThoughtCriminal

BogdanOntanu, I have looked at your code.  It seems you are doing some things the same way I was planning.

So I would like to ask you, just what how to you handle the newline characters?

BogdanOntanu

Farabi,

Please keep posts related to the subject of the thread...
IF you just want to post / share code you can always make your own thread about it :D
SOL_ASM handles include file directive ok, there is no need for extra code.

BTW putting file (lengthy) operations on WM_CREATE is a bad ideea.
WM_CREATE is designed for short operations that might not fail (or if they fail the application will fail).

ThoughtCriminal,

What do you mean?

You can see in my code that the parser is a state machine. Depending on the current state the newline might or might not switch to a new state. For example: in a multiline db/dw/dd statement newline dows not switch state/mode but after an instruction like mox eax,ebx it might do  ;)

Newlines are also considered separators when hunting for it.

Ambition is a lame excuse for the ones not brave enough to be lazy.
http://www.oby.ro

ThoughtCriminal

Thanks.  I found it after you posted.  Given me some good ideas.