汇编代码——函数调用原理

汇编代码中函数的调用过程

  • push 参数:64位 CPU 任性使用寄存吕
  • call 指令调用:将下一条指令地址入栈
  • 保护 bp 寄存器
push bp
  • 将 sp 赋值给 bp
mov bp,sp
  • 提升 sp 指针(sp 减去值),作为局部变量空间,即分配栈空间
  • 保存寄存器
push bx
push cx
push dx
  • 业务逻辑:实现功能
  • 恢复寄存器
pop dx
pop cx
pop bx
  • 恢复 sp 指针(sp 加上值)
  • sp 指向 bp
mov sp,bp
  • 恢复 bp
pop bp
  • ret 返回
ret

注意

  • 先 push 入栈的最后 pop 出栈
  • 栈指针sp 恢复时有两种方法
    • 重指向bp
    • 减多少值,就加回多少值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 38,124评论 8 114
  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 4,995评论 1 19
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,868评论 0 1
  • 一 在胡州北部有一国名叫“境”,境国依山势而建,面朝大海,四季景色迷人。 境国国主有三个美丽的公主,大公主伊姝、二...
    姀月阅读 727评论 0 5
  • 我总想拥有一份恬淡悠然的心,过一份简单的生活。与岁月同行,与光阴说禅,持一份静好的情愫,用一颗平淡的心,静读岁月的...
    古城苍狼阅读 684评论 2 13

友情链接更多精彩内容