码迷,mamicode.com
首页 > 其他好文 > 详细

汇编函数调用中bp和sp是指什么?

时间:2014-05-23 07:24:11      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:c   a   cti      io   第一个   

bp为基址寄存器,一般在函数中用来保存进入函数时的sp的栈顶基址
sp是栈顶指针,它每次指向栈顶。
每次子函数调用时,系统在开始时都会保存这个两个指针并在函数结束时恢复sp和bp的值。像下面这样:
在函数进入时:
push bp  //保存bp指针
mov bp,sp //将sp指针传给bp,此时bp指向sp的基地址。这个时候,如果该函数有参数,则[bp+4]则是该子函数的第一个参数,[bp+6]则是该子函数的第二个参数,以此类推,有多少个参数则[bp+4+2^n]。
.....
.....
函数结束时:
mov sp,bp //将原sp指针传回给sp
pop bp  //恢复原bp的值。
ret  //退出子函数

汇编函数调用中bp和sp是指什么?,布布扣,bubuko.com

汇编函数调用中bp和sp是指什么?

标签:c   a   cti      io   第一个   

原文地址:http://www.cnblogs.com/wanghj-dz/p/3741673.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!