首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

80386汇编中PUSH和PUSHA有关问题

2012-02-23 
80386汇编中PUSH和PUSHA问题我看的是杨季文的80386汇编,书中有几个地方我不理解(下面是书中的原文)1、在调

80386汇编中PUSH和PUSHA问题
我看的是杨季文的80386汇编,书中有几个地方我不理解(下面是书中的原文)
1、在调用通过堆栈传递入口参数的子程序时,把立即数直接压入堆栈操作能方便地把常量作为参数传递给子程序。
  PUSH 0F000H ;压入立即数
  PUSH 0 ;压入立即数
  CALL ECHOBD ;调用子程序
  ADD SP, 4 ;平衡堆栈

  这个最后一行的把SP加4平衡堆栈是什么意思

2、当用PUSH指令把堆栈指针SP或ESP压入堆栈时,80386/80286的处理方式不同于8086/8088.8086/8088是将SP减2后的值进栈,而80386/80286是将进栈操作前的SP(ESP)值入栈。

  这句话什么意思

望高手帮帮菜鸟我,谢谢各位

[解决办法]

探讨
我看的是杨季文的80386汇编,书中有几个地方我不理解(下面是书中的原文)
1、在调用通过堆栈传递入口参数的子程序时,把立即数直接压入堆栈操作能方便地把常量作为参数传递给子程序。
PUSH 0F000H ;压入立即数
PUSH 0 ;压入立即数
CALL ECHOBD ;调用子程序
ADD SP, 4 ;平衡堆栈

这个最后一行的把SP加4平衡堆栈是什么意思

……

[解决办法]
2个参数,2个word = 16*2 = 32 ,所以是add 4,相当于push 2次

热点排行