是否可以使用内部宏使用外部宏参数?
Is it possible to to use the outer macro parameter is used by inner macro?
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,str2 替换 x,y???
请快速帮助我,我需要为这个项目工作。
它产生的错误是:
缺少嵌套宏是 EMU8086 的一个限制,我认为这是不可能的。如果您使用 MASM/TASM/JWASM 它应该会正确处理它。
在较新版本的 MASM 上 str
是 386 上的一条指令,最好将 str
重命名为其他名称以避免 MASM 出错。
你的代码的最后两行是相反的,应该是:
code ends
end start
您必须先用 ends
结束当前片段,然后才能用 end
结束程序。
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,str2 替换 x,y??? 请快速帮助我,我需要为这个项目工作。 它产生的错误是:
缺少嵌套宏是 EMU8086 的一个限制,我认为这是不可能的。如果您使用 MASM/TASM/JWASM 它应该会正确处理它。
在较新版本的 MASM 上 str
是 386 上的一条指令,最好将 str
重命名为其他名称以避免 MASM 出错。
你的代码的最后两行是相反的,应该是:
code ends
end start
您必须先用 ends
结束当前片段,然后才能用 end
结束程序。