Hi!
Some Info about FASM:
Current Version is 1.39.
The Homepage of FASM is http://fasm.sf.net. You can find the assembler itself, some examples and a progammer editor for FASM there. Of course everything with source code!
FASM 1.40 is in development and will come along with a large documentation in PDF format, covering a wide range of topics... from generic assembly programming to the FASM features itself.
FASM is developed by Tomasz Grysztar, called "Privalov" on this forum and of course moderator of this section.
If you didn't try FASM yet, goto fasm.sf.net and get it!
Regards,
bAZiK
Posted on 2002-07-18 04:26:33 by bazik
Some Info about FASM:
Requirements:
DOS compatible operating system in real mode/Win32 compatible console/Linux, 80386 compatible processor, extended memory
Features:
8086-80486/Pentium/MMX/SSE/SSE2 instructions, 16-bit/32-bit code, macroinstructions,
code optimization, binary/MZ/PE/COFF output formats
Current Version is 1.39.
The Homepage of FASM is http://fasm.sf.net. You can find the assembler itself, some examples and a progammer editor for FASM there. Of course everything with source code!
FASM 1.40 is in development and will come along with a large documentation in PDF format, covering a wide range of topics... from generic assembly programming to the FASM features itself.
FASM is developed by Tomasz Grysztar, called "Privalov" on this forum and of course moderator of this section.
If you didn't try FASM yet, goto fasm.sf.net and get it!
Regards,
bAZiK
Posted on 2002-07-18 04:26:33 by bazik
:grin: You have relieved me. Thank you!
I moved some FASM threads here to bring a bit 'life' in this Forum ;)
It would be nice to post here some of FASM's features/advantages compared to masm so one can quickly decide if it is interesting at all.
Privalov, I am curious about the limitations designed into FASM. Stuff like maximum line length, labels supported, maximum object file size, etc... What do I have to do to break it? :tongue:
Everything (line length, number of labels, number of macro, data size) is limited only by your memory (so if you have 256 MB of RAM you can think of it as there were no limits), the only limitation is that label names can't have more than 255 characters each (but who needs such a long labels?).
cmp eax, 1
jne eax_is_not_one
cmp eax, 2
jne eax_is_even_not_two
cmp eax, 3
jne god_damn_wich_stupid_value_does_eax_have
cmp eax, 4
jne ok_i_give_up_eax_might_be_higher_than_4_but_its_hard_to_make_a_underscore_after_each_word
inc eax
eax_is_not_one:
eax_is_even_not_two:
god_damn_wich_stupid_value_does_eax_have:
ok_i_give_up_eax_might_be_higher_than_4_but_its_hard_to_make_a_underscore_after_each_word:
xor eax, eax
ret
:stupid:
> is limited only by your memory
Hmmm.... 1536 MB ram.... that's a long line of text
:tongue:
quit showing off pingo :tongue:
Have a bit fun with fasm:
first assemble the following code into another .asm file:
you will get about 500k source file consisting of one line ;)
Now you can assemble it, too. :)
first assemble the following code into another .asm file:
db 'dd 1'
repeat 40000h
db '+1'
end repeat
db 13,10
you will get about 500k source file consisting of one line ;)
Now you can assemble it, too. :)
:grin:
C:\temp\Fasm>type test.asm
db 'dd 1'
repeat 40000h
db '+1'
end repeat
db 13,10
C:\temp\Fasm>fasm test.asm test1.asm
flat assembler version 1.39
1 passes, 0.2 seconds, 524294 bytes.
C:\temp\Fasm>fasm test1.asm test2.asm
flat assembler version 1.39
1 passes, 0.1 seconds, 4 bytes.
C:\temp\Fasm>debug test2.asm
-d
1510:0100 01 00 04 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1510:0110 00 00 00 00 00 00 00 00-00 00 00 00 34 00 FF 14 ............4...
1510:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1510:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1510:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1510:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1510:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
1510:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-q
Hey, it could be optimized!
:stupid:
Sorry for reviving such not-really-up-to-date thread, I'm just having fun... :grin:
db 'dd 1'
times 40000h db '+1'
db 13,10
:stupid:
Sorry for reviving such not-really-up-to-date thread, I'm just having fun... :grin: