mov bp,sp以后就默认BP为SS的偏移地址吗?

谁回答一下,我知道答案了,我不问了????

bp为基址寄存器,一般在函数中用来保存进入函数时的sp的栈顶基址
每次子函数调用时,系统在开始时都会保存这个两个指针并在函数结束时恢复sp和bp的值。
在函数进入时:
push bp     ; 保存bp指针
mov bp,sp   ; 将sp指针传给bp,此时bp指向sp的基地址。
            ; 这个时候,如果该函数有参数,则[bp + 2*4]则是该子函数的第一个参数,[bp+3*4]则是该子函数的 第二个参数,以此类推,有多少个参数则[bp+(n-1)*4]。

函数结束时:
mov sp,bp  ; 将原sp指针传回给sp
pop bp     ; 恢复原bp的值。
ret        ; 退出子函数

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
相似回答