我想在 FASM 中创建宏,它可以像这样直接打印字符串(int DOS):
prints 'hey there!!!!'
我写了这样的代码:
format MZ
use16
stack 0x100
entry _TEXT@16:_start
;
macro prints str
{
call @f
db str, 0x24
@@:
pop dx
mov ah, 9
int 0x21
}
segment _DATA@16 use16
msg db 'hi!', 0xd, 0xa, 0x24
segment _TEXT@16 use16
_start:
push _DATA@16
pop ds
prints 'hi there))) !!!!'
prints 'me'
mov ax, 0x4c00
int 0x21
ret
问题是:当我将 _DATA@16 段留空(没有任何变量)时,一切都很好。但是当我在该段中定义新变量时,一些原始的额外符号开始出现如下:http ://board.flatassembler.net/files/err_758.png
那你能帮帮我吗?我的错误在哪里?也许我选择了错误的方式来实现我想要的东西?请帮忙....