Slo*_*ald 1 x86 assembly stack
我总是认为SP是相对BP,(意味着推动/和弹出的东西在堆栈中会使用的地址BP- SP,与BP被堆叠的开始,并SP正对堆栈顶部的当前项目).但是,在查看了CDECL调用约定之后,这就没有意义了,就像SP分配给它的值一样BP.那么,如果我改变BP,这甚至会产生影响SP吗?是BP即使用于push/ pop指令?或者push/ pop只是合作SP?难道BP甚至需要?
SP
BP
push
pop
Mic*_*ael 5
那么,如果我改变BP,那是否会影响SP?BP甚至用于推/弹指令吗?
不,不.
BP/ EBP/ RBP经常被用来保存当前的地址堆栈帧的函数的.也就是说,相对于函数的参数和局部变量的地址将在整个函数中保持不变(而堆栈指针可能会暂时改变). 像PUSH/ POP或CALL/ 这样的指令RET会改变SP/ ESP/ RSP而不是BP/ EBP/ RBP.
EBP
RBP
PUSH
POP
CALL
RET
ESP
RSP
归档时间:
11 年,9 月 前
查看次数:
387 次
最近记录: