问题描述
data segment
str db "hello$"
str2 db "world$"
data ends
adds macro a,b
lea si,a
lea di,b
endm
subs macro x,y
adds x,y
endm
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
subs str,str2
mov ah,4ch
int 21h
end start
code ends
以上仅是示例,在整数工作正常的情况下,但是在这种情况下使用字符串时,为什么它不将str替换为str,str2? 请快速帮助我,我需要为该项目进行工作。 它生成的错误是:
解决方法
缺少嵌套宏是EMU8086的局限性,我认为这是不可能的。如果您使用的是MASM / TASM / JWASM,则应正确处理。
在较新版本的MASM str
上是386上的一条指令,为避免将MASM出错,将str
重命名为其他名称是个好主意。
代码的最后两行是相反的,应该是:
code ends
end start
在用ends
结束程序之前,您必须以end
结束当前段。