好的当我制作宏时,如果我这样做,我就无法使循环正常工作。
move macro x,y
mov esi, 0
mov ecx, SIZEOF x
a:
mov al, x[esi]
mov y[esi], al
inc esi
LOOP a
endm
但是当我添加参数并更改标签时,它可以正常工作
move macro x,y,a
mov esi, 0
mov ecx, SIZEOF x
a:
mov al, x[esi]
mov y[esi], al
inc esi
LOOP a
endm
当我调用宏时,我会做一些事情 移动a,b,L1 移动c,d,L2
但我不确定它为什么会起作用..
答案 0 :(得分:2)
如果您没有参数化标签,则会在使用宏的每个实例中放置相同的标签。您不能在多个地方拥有相同的标签名称。您的解决方案看起来很合理,但您的汇编程序也可能支持本地标签(在某些标签@@:
中,在其他标签中编号为1:
),这也可以解决您的问题,并且更易于使用。< / p>