首页 > 代码库 > 汇编函数调用中bp和sp是指什么?
汇编函数调用中bp和sp是指什么?
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 //退出子函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。