flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
Spool 27 Jan 2013, 05:00
[ Post removed by author. ]
Last edited by Spool on 17 Mar 2013, 04:33; edited 1 time in total |
|||
![]() |
|
Spool 27 Jan 2013, 08:38
[ Post removed by author. ]
Last edited by Spool on 17 Mar 2013, 04:36; edited 1 time in total |
|||
![]() |
|
JohnFound 27 Jan 2013, 09:03
The number of passes can not be easy determined in advance. All the more, that in the different versions of FASM this count can be different.
Here is simple example that compiles for 3 passes, but it is empirically created: Code: jmp lbl1 if (lbl1<100) & (flag=0) rb 100 end if flag = 1 lbl1: |
|||
![]() |
|
baldr 27 Jan 2013, 09:22
Spool,
Make more forward references. Code: VAR equ 1 ; value for last assignment rept 10 { forward local var ; generate unique symbol VAR equ var ; push it on «equ» stack reverse restore VAR ; drop current symbol to acquire previous var = VAR ; make current dependent on previous } Is that swaps macroinstruction a replacement for trivial xchg instruction? |
|||
![]() |
|
Spool 27 Jan 2013, 09:41
[ Post removed by author. ]
Last edited by Spool on 17 Mar 2013, 04:36; edited 1 time in total |
|||
![]() |
|
baldr 27 Jan 2013, 10:15
Spool,
Try VAR equ 0 for some surprise. ![]() |
|||
![]() |
|
Spool 27 Jan 2013, 11:30
[ Post removed by author. ]
Last edited by Spool on 17 Mar 2013, 04:37; edited 1 time in total |
|||
![]() |
|
baldr 27 Jan 2013, 14:10
Spool,
I didn't mean VAR equ 0 alone. What I really meant was Code: rept 1'000'000 i { reverse rept 1 j:i-1 \{ var#i = var\#j \} } var0 = 0 Code: flat assembler version 1.71.07 (500000 kilobytes memory) 2 passes, 11.3 seconds, 0 bytes. |
|||
![]() |
|
Spool 27 Jan 2013, 22:43
[ Post removed by author. ]
Last edited by Spool on 17 Mar 2013, 04:37; edited 1 time in total |
|||
![]() |
|
baldr 27 Jan 2013, 23:00
Spool,
Those examples do not generate output, they're just causing compiler to do particular number of passes. Code: rept 100 i { reverse rept 1 j:i-1 \{ var#i = var\#j \} } var0 = 1 Code: >fasm multipass.fasm flat assembler version 1.71.07 (1890955 kilobytes memory) error: code cannot be generated. >fasm multipass.fasm -p 101 flat assembler version 1.71.07 (1886339 kilobytes memory) 101 passes, 0 bytes. |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.