使用推送在16位 - tasm

时间:2012-06-05 13:46:38

标签: assembly stack push 16-bit tasm

.data    
    SUM DW 250h
.text
     push SUM
     call func
     ....
 func:
      mov bp, sp
      mov ax, [bp + 2]
      inc ax
      mov [bp + 2], ax
      .....

当我使用push指令时,我是否推送SUM的引用,或者值? 在调用func后,SUM是否会发生变化?

1 个答案:

答案 0 :(得分:0)

您可能希望取消引用传递给函数的地址

.data    
    SUM DW 250h
.text
     push [SUM]
     call func
     ....
 func:
     mov bp, sp
     mov bx, [bp + 2]
     mov ax,[bx]
     inc ax
     mov [bx],ax
     mov [bp + 2], ax
     .....

这看起来真的很迂回,我确信有一种更简单的方法,但我没有一台方便的机器。因为你不能使用[ax]而额外的环形交叉:(