次のように文字列 (int DOS) を直接出力できるマクロを FASM で作成したいと考えています。
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 セグメントを空 (変数なし) のままにしておくと、すべて問題ないことです。しかし、そのセグメントで新しい変数を定義すると、生の余分なシンボルが次のように表示され始めます。
それで、私を助けてもらえますか?私の間違いはどこですか?たぶん、私が望むことを達成するために間違った方法を選択したのでしょうか? 助けてください....