十四.函数本质之03寄存器的保护

我们要探讨的函数,写一个汇编程序实现这个
反汇编,这个是系统写的

一起探讨一下

在调用函数的时候,我们经常有使用到同一个寄存器,所以要现场保护;

汇编中,将寄存器保护起来

和业务区分开,前边是入栈,保存数据,中间业务,后边是出栈;前后真好相反;

将寄存器保存保护起来 --- 压栈
栈顶是垃圾数据,但是不用去清理,没有用,只要管理好指针就行

bp咋整?
push一下bp,然后pop一下bp


保护
弹出

将bp入栈,保护起来
将bp入栈
bp入栈,保证安全
让sp = bp
sp-20,分配空间给局部变量
将其他寄存器数据保存
寄存器出栈
bp回去到原始的地方~,保护完毕
执行完sum函数,到了这个地址,然后去执行ret函数了
具体代码1
具体代码2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 4,686评论 1 19
  • 王爽汇编全书知识点大纲 第一章 基础知识 机器语言 汇编语言的产生 汇编语言的组成 存储器 cpu对存储器的读写 ...
    2c3ba901516f阅读 2,453评论 0 1
  • 首先寄存器使用惯例:eip :指令地址寄存器,保存程序计数器的值,当前执行的指令的下一条指令的地址值,16位中为i...
    扎Zn了老Fe阅读 2,013评论 0 0
  • 对目前的状态很不满 但却没能做出改变,根本不知道要往什么方向走… 青春易逝 非常后悔大学这几年的无所事事 几乎已...
    Anzu阅读 136评论 0 0
  • 尼采曾经说过:谁也不能为你建造一座你必须踏着它渡过生命之河的桥,除你自己之外没有人能这么做。尽管有无数肯载你渡河的...
    晶亮晶阅读 482评论 0 0