80386汇编中PUSH和PUSHA问题
时间:2011-12-19
来源:互联网
我看的是杨季文的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)值入栈。
这句话什么意思
望高手帮帮菜鸟我,谢谢各位
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)值入栈。
这句话什么意思
望高手帮帮菜鸟我,谢谢各位
作者: redhat0921 发布时间: 2011-12-19
引用楼主 redhat0921 的回复:
我看的是杨季文的80386汇编,书中有几个地方我不理解(下面是书中的原文)
1、在调用通过堆栈传递入口参数的子程序时,把立即数直接压入堆栈操作能方便地把常量作为参数传递给子程序。
PUSH 0F000H ;压入立即数
PUSH 0 ;压入立即数
CALL ECHOBD ;调用子程序
ADD SP, 4 ;平衡堆栈
这个最后一行的把SP加4平衡堆栈是什么意思
……
我看的是杨季文的80386汇编,书中有几个地方我不理解(下面是书中的原文)
1、在调用通过堆栈传递入口参数的子程序时,把立即数直接压入堆栈操作能方便地把常量作为参数传递给子程序。
PUSH 0F000H ;压入立即数
PUSH 0 ;压入立即数
CALL ECHOBD ;调用子程序
ADD SP, 4 ;平衡堆栈
这个最后一行的把SP加4平衡堆栈是什么意思
……
(1)调用函数传递和使用参数有C方式、pascal方式和stdcall方式
其中c方式是将参数从右向左压栈(最右边的第一个压栈,最左边的最后一个压栈),被调用函数任务完成后,
不平衡栈,而是由调用者平衡。你的程序就是这样的。
(2)那都说的那么明白了,你怎么就不能明白呢?不就是压栈的内容调整了一下吗。比如:
push ax ,是sp先减2,然后将ax压栈,sp指向压栈的值
那push sp该怎么压栈呢?如果sp没压栈时的值是100,那push sp后,esp=98,可是压进栈的那个值是100呢还是98呢?你的那句话就是解决这个问题,以前是压的98,以后改为压100。
作者: gsy999 发布时间: 2011-12-19
2个参数,2个word = 16*2 = 32 ,所以是add 4,相当于push 2次
作者: mydo 发布时间: 2011-12-19
引用 1 楼 gsy999 的回复:
引用楼主 redhat0921 的回复:
我看的是杨季文的80386汇编,书中有几个地方我不理解(下面是书中的原文)
1、在调用通过堆栈传递入口参数的子程序时,把立即数直接压入堆栈操作能方便地把常量作为参数传递给子程序。
PUSH 0F000H ;压入立即数
PUSH 0 ;压入立即数
CALL ECHOBD ;调用子程序
ADD SP, 4 ;平衡堆栈
这个最后一行的把SP加4……
引用楼主 redhat0921 的回复:
我看的是杨季文的80386汇编,书中有几个地方我不理解(下面是书中的原文)
1、在调用通过堆栈传递入口参数的子程序时,把立即数直接压入堆栈操作能方便地把常量作为参数传递给子程序。
PUSH 0F000H ;压入立即数
PUSH 0 ;压入立即数
CALL ECHOBD ;调用子程序
ADD SP, 4 ;平衡堆栈
这个最后一行的把SP加4……
up
作者: yh_no_code 发布时间: 2011-12-19
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28