是否可以使用内部宏使用外部宏参数?

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 结束程序。