鱼C论坛

 找回密码
 立即注册
查看: 1908|回复: 1

附注4(用栈传递参数),第一个例子具体怎么执行

[复制链接]
发表于 2012-3-24 22:18:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 夜鸽 于 2012-4-2 00:53 编辑

;说明:计算(a-b)^3,a,b为字型数据
;参数:进入子程序时,栈顶存放IP,后面依次存放a,b
;结果: (dx:ax)=(a-b)^3
difcube:push  bp           ;为什么这样?
           mov  bp,sp
           mov  ax,[bp+4]   ;将栈中a的值送入ax中
           sub   ax,[bp+6]    ;减栈中b的值
           mov  bp,ax
           mul  bp
           mul  bp
           pop bp
           ret  4                  ;啥意思?
这些个指令怎么执行的???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2012-4-2 00:41:16 | 显示全部楼层
自己给自己一个答案吧,使用push bp是防止主程序中需要用bp寄存器时,子程序对bp进行更改,所以用push bp对bp进行保护,尽管就本题而言并没有什么操作对bp进行更改,毕竟它是通用的一个子程序,而且很有必要将push ax ,pop ax也加进去,因为子程序也对ax进行了更改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-8 10:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表