厦门律师网站建设新浪网站开发语言
web/
2025/10/9 1:14:50/
文章来源:
厦门律师网站建设,新浪网站开发语言,软件商店电脑版下载,有哪些好的印花图案设计网站文章目录 call指令和ret指令高级语言的函数调用x86汇编语言的函数调用call ret指令小结其他问题 如何访问栈帧函数调用栈在内存中的位置标记栈帧范围#xff1a;EBP ESP寄存器访问栈帧数据#xff1a;push pop指令访问栈帧数据#xff1a;mov指令小结 如何切换栈帧函数返回时… 文章目录 call指令和ret指令高级语言的函数调用x86汇编语言的函数调用call ret指令小结其他问题 如何访问栈帧函数调用栈在内存中的位置标记栈帧范围EBP ESP寄存器访问栈帧数据push pop指令访问栈帧数据mov指令小结 如何切换栈帧函数返回时如何切换栈帧ret指令 小结 如何传递参数和返回值一个栈帧内可能包含哪些内容汇编代码实战小结 call指令和ret指令
高级语言的函数调用
x86默认指的是32为如果为64位可以叫x64或x86-64 此时caller栈帧中有add函数调用的参数信息 x86汇编语言的函数调用 call ret指令 小结 其他问题 如何访问栈帧
函数调用栈在内存中的位置 标记栈帧范围EBP ESP寄存器
注意x86系统中默认以4字节位栈的操作单位
访问栈帧数据push pop指令
初始状态 第一条指令执行后 第二条指令执行后 第三条指令执行后 第四条指令执行后 第五条指令执行后
访问栈帧数据mov指令 小结 如何切换栈帧 call没执行之前 call执行后 push指令执行后 mov指令执行后
函数返回时如何切换栈帧 第一条指令执行后
相当于恢复之前使用call之后的状态
ret指令 小结
跳转之前都是上一个函数的栈帧
如何传递参数和返回值
一个栈帧内可能包含哪些内容
如果当前函数不会调用下一个函数那么该当前函数的栈帧的大小不需要是16字节对齐的
汇编代码实战
执行前两天指令后 执行sub指令后 再执行两天mov指令 执行两个mov指令 mov指令不支持两个操作数同时来自主存 再执行两个mov指令 执行call指令后 执行push 和mov指令后 执行两条mov指令
执行add指令后 执行完leave指令 执行完ret指令 执行完mov指令后 再执行下一条mov指令
小结
如果调用者有其他也使用的寄存器要被被调用者使用时 此时可以将调用者使用的寄存器压栈保存
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89366.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!