flat assembler
Message board for the users of flat assembler.
Index
> Main > flat assembler 1.56 |
Author |
|
Tomasz Grysztar 27 Sep 2004, 12:47
Now available in the Download section.
This is mainly the cleanup release (read more here). Also a more detailed note about "eqtype" operator has been added to documentation - it was the last important feature that has not yet been documented enough. Since now all further development goes into direction of version capable of generating AMD64 long mode code - in future releases X86.INC is going to be replaced with new file, containing the long mode support. Last edited by Tomasz Grysztar on 19 Jan 2005, 09:31; edited 1 time in total |
|||
27 Sep 2004, 12:47 |
|
Tomasz Grysztar 27 Sep 2004, 17:13
You're right, thanks.
|
|||
27 Sep 2004, 17:13 |
|
Tyler Durden 07 Oct 2004, 21:06
Is there any "whatsnew's" in the 0.92.3 ide's version ?
|
|||
07 Oct 2004, 21:06 |
|
IceStudent 06 Nov 2004, 12:20
Hello.
I wrote this code: Code: format ELF section '.text' executable public _start _start: nop and trying to compile with the FASM v1.56, but occurs such error: Quote:
But FASM v1.55 successfull compile this code. What I made wrong? Or it's new feature, which are not well documented at the FASM help? Besr regards, IceStudent |
|||
06 Nov 2004, 12:20 |
|
Tomasz Grysztar 06 Nov 2004, 12:54
Works for me.
|
|||
06 Nov 2004, 12:54 |
|
IceStudent 07 Nov 2004, 06:30
Privalov wrote: Works for me. Yes, you right. All versions of compiler, which I have (1.50..1.56), compile such code. But builds with the listing support are can not compile it. First of all, at v1.56 changed size of variable org_origin: dq, so I must change the code at listing.inc: Code: mov dword [adjustment],eax mov dword [adjustment+4],eax mov dword[org_origin],edi ; <-- changed mov dword[org_origin+4],eax ; <-- I think, it's correct.. Then I observed, that problem is here: Code: cmp [listing_file],0 je no_line_pointers_needed .... no_line_pointers_needed: ; dec [current_pass] ; <-- you must comment this line ret If I comment this line, FASM successfully compile all examples of the Linux version (and even FASM source): with the listing option or no. Of course, may be I made mistake, so tell me about it. Best regards, IceStudent |
|||
07 Nov 2004, 06:30 |
|
Tomasz Grysztar 08 Nov 2004, 13:40
Yeah, the listing feature has not been adapted to the latest changes of internals yet.
Another small update has been made today, with a small fix made as a side-effect during writing the internals documentation. In the mean time I have also updated the 64-bit division algorithm used by expression evaluator, as it happened to be terribly slow in some cases of dividing two very large values. The today's fix can be the most simply described on a small example: Code: a equ b b equ 1 a: mov eax,a The bug that existed in preprocessor caused the "a" label to be preprocessed twice, so the whole line was becoming "1: mov eax,b" (and causing an error), while it should be "b: mov eax,b", as it is done by the updated 1.56. |
|||
08 Nov 2004, 13:40 |
|
fasm9 24 Nov 2004, 21:51
what's new in today's 1.56? ;)
-- Hi, Admin |
|||
24 Nov 2004, 21:51 |
|
mike.dld 29 Dec 2004, 00:32
Hi, Privalov!
Just another suggestion from me (maybe not so useless for anyone but me). Are you planning to extend string operations functionality so we could write e.g. such piece of code: Code: macro display_a_to_b _str { local ..str ..str = '' repeat length(_str) if _str[%] = 'a' ..str = ..str + 'b' else ..str = ..str + _str[%] end if end repeat display ..str,13,10 } With this little extension we could even make something like PRINTF macro. What do you think? |
|||
29 Dec 2004, 00:32 |
|
vid 29 Dec 2004, 14:42
mike: how should it beheave if _str isn't string?
|
|||
29 Dec 2004, 14:42 |
|
mike.dld 29 Dec 2004, 17:13
I've forgotten to check that (you know of course what EQTYPE does).
|
|||
29 Dec 2004, 17:13 |
|
vid 29 Dec 2004, 17:21
yes, but anyway, what should it do if used on non-string?
|
|||
29 Dec 2004, 17:21 |
|
Tomasz Grysztar 29 Dec 2004, 17:26
It's usually done this way:
Code: macro display_a_to_b _str { local ..str ..str = '' virtual at 0 db _str repeat $ load a byte from %-1 if a = 'a' display 'b' else display a end if end repeat end virtual display 13,10 } |
|||
29 Dec 2004, 17:26 |
|
mike.dld 31 Dec 2004, 08:39
OK, Privalov, you are the great (I think you know that)
|
|||
31 Dec 2004, 08:39 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.