flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
Tomasz Grysztar 10 Dec 2019, 09:56
The problem here is that fasm 1 terminates assembly when it sees a duplicate label error (your method would work correctly with fasmg, where all errors are delayed and resolvable). So you need to add additional check to prevent defining the label twice in the same pass:
Code: macro test name,[label,string] { if used label if ~ defined delayed.#label label dd 0 end if end if } macro test2 name,[label,string] { if used label delayed.#label: if ~ definite label label dd 0 end if end if } |
|||
![]() |
|
ProMiNick 10 Dec 2019, 10:05
Thanks Tomasz.
definite is realy solves problems that were unrosolvable before. |
|||
![]() |
|
Tomasz Grysztar 10 Dec 2019, 10:15
This could be solved without DEFINITE as well, just a bit more complex:
Code: macro test name,[label,string] { if used label if ~ defined delayed.#label undelayed.#label: label dd 0 end if end if } macro test2 name,[label,string] { if used label delayed.#label: if ~ defined undelayed.#label label dd 0 end if end if } |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.