汇编语言SP=SP

2024年11月30日 18:31
有1个网友回答
网友(1):

16位汇编:PUSH 16位(寄存器/存储器) ; SP=SP-2 POP 16位(寄存器/存储器) ; SP=SP+2SP是栈顶指针指示器(16位);32位汇编:PUSH 16位/32位(寄存器/存储器/立即数) ; ESP=ESP- 2/4POP 16位/32位(寄存器/存储器/立即数) ; ESP=ESP+ 2/4ESP是栈顶指针指示器(32位); 现在的程序都是32位的. sp是栈指针,在8086模式下都是以字为单位,压栈一次sp就减2,出栈一次sp就加2. SP=SP-2,是指堆栈指针移动2个字节。不是一进站就要移动2个字节,这和你操作的数大小有关。如果你操作的书是字节型的(比如C语言中char型),那就只移动1个字节,即SP=SP-1;如果是双字节的(比如C语言中的int型),就是SP=SP-2;如果是四字节的(比如C语言中的float型的)就是SP=SP-4.