flat assembler
Message board for the users of flat assembler.
Index
> Main > comparison Tasm vs Masm vs Fasm vs Rasm |
Author |
|
Luc Van de Velde 28 Mar 2009, 19:26
general discussion... fasm vs rasm (no... not rosasm!)
Last edited by Luc Van de Velde on 30 Mar 2009, 17:02; edited 2 times in total |
|||
28 Mar 2009, 19:26 |
|
Luc Van de Velde 28 Mar 2009, 20:28
youre right... sorry but i didnt know u had to put the segment inside
the memory brackets... so, i found no bugs in fasm Here is the link to download RASM http://www.filefactory.com/file/af8gah7/n/rsources.zip Unzip to c:\ notes: Rasm is open source and public domain Rasm can assemble itself In development since september 1997 Rasm can produce .sys/.com/dos .exe/win .exe(PE) Additional functionallity for designing/testing/routing and producing chips In cplayout directory u will find asm.exe... its the same as rasm.exe If u run layout.bat to produce a chip layout u should increase the number of layers to 16 to see a successfull routing result... just press '-' on a qwerty keybourd (right next to 0 on an azerty) pressing 'd' will start ASTEROIDS pressing 'g' will start 4 in a row just press 'h' (help) to see the fuction of all keys[url][/url][url][/url] Last edited by Luc Van de Velde on 30 Mar 2009, 19:03; edited 2 times in total |
|||
28 Mar 2009, 20:28 |
|
DOS386 29 Mar 2009, 03:58
> [edit]BTW, where can I download RASM?
http://betov.free.fr/ Luc Van de Velde wrote: youre right... soryy but i didnt know u had to put the segment inside the memory brackets... so, i found no bugs in fasm Quote: Here is the link to download RASMhttp://www.filefactory.com/file/af798f6/n/rsources_rar/ No project page ??? Quote: Rasm is open source and public domain Rasm can assemble itself Nice, but this doesn't give you the right to include RAR.EXE Also, there is at least one faulty PIF file, and your buggy "comparison" test so please delete or update the file, it's very unfair to claim "FASM is the most buggy" while in fact it was your BUG. > Rasm can produce .sys/.com/dos .exe/win .exe(PE) Nice ... if true. > Additional functionallity for designing/testing/routing and producing chips Forgot the pizza-feature ? > pressing 'd' will start ASTEROIDS falling on my head ? >pressing 'g' will start 4 in a row 4 what ? BTW, the "comparison" as-is is of course total invalid, nevertheless, it shows that error messages produced by FASM are indeed suboptimal (MOV AX, [DX] | LEA ECX, [EAX+EBX+ECX] ... compared to what RASM reportedly (and partially MASM and TASM) do produce. _________________ Bug Nr.: 12345 Title: Hello World program compiles to 100 KB !!! Status: Closed: NOT a Bug |
|||
29 Mar 2009, 03:58 |
|
LocoDelAssembly 29 Mar 2009, 04:55
Yep, better explanation than "invalid address." could be a good thing to have and I think that something must be done with "reserved word used as symbol." (discussed already somewhere), it doesn't even say what symbol is (it is AX), and still it doesn't make clear that the real problem is that it is an invalid addressing.
Once you get used it doesn't matter anymore, but yet it could save some time in cases where the instruction is "mov reg, [some_macro_generated_equ]" where you don't have a clue for what reason it is wrong. |
|||
29 Mar 2009, 04:55 |
|
revolution 29 Mar 2009, 15:57
INC.TXT wrote: ;[ebp+esp] ;Tasm: OK turns esp into base |
|||
29 Mar 2009, 15:57 |
|
revolution 29 Mar 2009, 16:10
INC.TXT wrote: ... and Fasm use algebra on registers) Code: mov eax,[eax+eax+eax] ;okay mov eax,[eax+ebx+eax] ;okay mov eax,[eax+ebx-ebx+ecx] ;okay mov eax,[eax+ebx+ecx-ebx] ;<---- error: invalid expression. Code: mov eax,[eax+ebx-eax+ebx+ecx-2*ebx+edx] |
|||
29 Mar 2009, 16:10 |
|
Luc Van de Velde 29 Mar 2009, 22:44
a test file to see if your assembler optimizes branches perfectly
|
|||||||||||
29 Mar 2009, 22:44 |
|
Luc Van de Velde 30 Mar 2009, 00:29
look at how rasm deals with repeats...
u="_" i=0 j=1 testing: lab&i&u&j: sub eax,i jns lab&i&u&j i=i+1 if i lt 100000 goto testing ;any label can be jumped to by a compile-time goto, also forward jumps! lab&i&u&j becomes sequentially: lab0_1 lab1_1 lab2_1 lab3_1 .... lab99999_1 (loop exits) if u want a generic goto: if 1 goto label time to compile this (100000 loops):1.6 seconds... on a cheap laptop |
|||
30 Mar 2009, 00:29 |
|
revolution 30 Mar 2009, 01:06
Are you trying to have face-off between Rasm and fasm? Or are you just unsure how to do the same in fasm?
Code: use32 u equ "_" j equ 1 rept 100000 i:0 { lab#i#u#j: sub eax,i jns lab#i#u#j } Quote: flat assembler version 1.67.32 (100000 kilobytes memory) |
|||
30 Mar 2009, 01:06 |
|
DOS386 30 Mar 2009, 01:18
Luc Van de Velde wrote: look at how rasm deals with repeats Before further advertising R[os]ASM here, there are 2 things you should do pretty urgently: * Update or delete your comparison text in both forum attach and the package * Fix the (C) violations in your package _________________ Bug Nr.: 12345 Title: Hello World program compiles to 100 KB !!! Status: Closed: NOT a Bug |
|||
30 Mar 2009, 01:18 |
|
revolution 30 Mar 2009, 01:45
Can Rasm solve this problem with minimal code (5 bytes)?
Code: use32 a: mov eax,[edx+c-a-5] mov esi,[edx+c-a-7] c: |
|||
30 Mar 2009, 01:45 |
|
LocoDelAssembly 30 Mar 2009, 02:42
Is this really RosASM? I've tried to confirm that yesterday but I was unable to find the sources at betov's site.
|
|||
30 Mar 2009, 02:42 |
|
vid 30 Mar 2009, 11:45
Quote: Can Rasm solve this problem with minimal code (5 bytes)? I remember correcting betov oversimplified ideas about code size optimization about 1-2 years ago, so my quess would be no |
|||
30 Mar 2009, 11:45 |
|
Luc Van de Velde 30 Mar 2009, 17:47
conditional GOTO's are very usefull
ex. -for jumping out of a loop -can simulate any type of loop IF condition GOTO label is missing in all assemblers except rasm note: the condition can be anything... not just for loop counter only! |
|||
30 Mar 2009, 17:47 |
|
revolution 30 Mar 2009, 17:58
fasm has while/break/end, repeat/break/end and if/break/else/end but they are all assembly-stage block directives. But the pre-processor macros could definitely benefit from an exitm type directive. I miss that sometimes.
Last edited by revolution on 30 Mar 2009, 19:18; edited 1 time in total |
|||
30 Mar 2009, 17:58 |
|
Luc Van de Velde 30 Mar 2009, 19:10
No Rasm has nothing to do with Betov's excellent Rosasm!
I dont use a preprocessor in rasm... u lose POWER that way Each label also has a dword pointer to its source code address! Take note of this Thomas! that way u can easily implement 'IF cond GOTO label' This is possible becouse rasm loads all source code into memory |
|||
30 Mar 2009, 19:10 |
|
Japheth 30 Mar 2009, 19:54
Luc Van de Velde wrote: conditional GOTO's are very usefull Masm v6 has the GOTO directive. It works within macros only. It's hardly used, because the more structured loop directives usually are sufficient. |
|||
30 Mar 2009, 19:54 |
|
DOS386 30 Mar 2009, 23:04
LocoDelAssembly wrote: Is this really RosASM? NO. Sorry for the confusion Quote: confirm that yesterday but I was unable to find the sources at betov's site. Inside the EXEcutables ? I don't use RosASM, heh Luc Van de Velde wrote: > Take note of this Thomas! Of what ? And you take note of Tomasz's name! |
|||
30 Mar 2009, 23:04 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.