flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
Roman 24 Aug 2022, 06:01
I write prototype.
Code: macro mcg.Init { local a jmp a mcg.start dd 0 mcg.end dd 0 mcg.loop dd 0 a: } macro mcg.Put a,b { movd xmm0,b movd [mcg.#a],xmm0 } macro mcg.Run {local .a mov eax,[mcg.start] mov ebx,[mcg.loop] mov ecx,[mcg.end] invoke MessageBox,0,'mcg.Run',0,0 .a: } ;in code mcg.Init ;do once or not write this. mcg.Put start,[cerr] ;if this and mcg.start not defined then define mcg.start mcg.Put end,[cerr] mcg.Put loop,eax mcg.Run |
|||
![]() |
|
Roman 24 Aug 2022, 06:12
but this fasm not compiled.
Error: code cannot be generated Code: macro mcg.Put a,b { if ~ defined mcg.#a jmp @f mcg.#a dd 0 @@: end if movd xmm0,b movd [mcg.#a],xmm0 } |
|||
![]() |
|
macomics 24 Aug 2022, 06:42
Code: macro mcg.Put a,b { if ~ defined mcg.#a | defined @f jmp @f mcg#.a dd 0 @@: movd xmm0,b movd [mcg.#a],xmm0 } |
|||
![]() |
|
Roman 24 Aug 2022, 06:47
Thanks macomics
This code well. Code: macro mcg.Put_ a,b { if ~ defined mcg.#a | defined @f jmp @f mcg.#a dd 0 @@: end if movd xmm0,b movd [mcg.#a],xmm0 } |
|||
![]() |
|
Overclick 24 Aug 2022, 11:11
Is your code section writable? If not you need to use some.
Or welcome to multisection Code: macro mcg.Put_ a,b { ..dataonce mcg.#a, mcg.#a dd 0 movd xmm0,b movd [mcg.#a],xmm0 } |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.