附注4(用栈传递参数),第一个例子具体怎么执行
本帖最后由 夜鸽 于 2012-4-2 00:53 编辑;说明:计算(a-b)^3,a,b为字型数据
;参数:进入子程序时,栈顶存放IP,后面依次存放a,b
;结果: (dx:ax)=(a-b)^3
difcube:pushbp ;为什么这样?
movbp,sp
movax, ;将栈中a的值送入ax中
sub ax, ;减栈中b的值
movbp,ax
mulbp
mulbp
pop bp
ret4 ;啥意思?
这些个指令怎么执行的??? 自己给自己一个答案吧,使用push bp是防止主程序中需要用bp寄存器时,子程序对bp进行更改,所以用push bp对bp进行保护,尽管就本题而言并没有什么操作对bp进行更改,毕竟它是通用的一个子程序,而且很有必要将push ax ,pop ax也加进去,因为子程序也对ax进行了更改
页:
[1]