[ASM] 64bit寄存器的作用
2012-09-07 17:08
260 查看
图中指明了64bit的通用寄存器共有16个,访问不同大小时有不同名称。
另外就是后面的说明,当一个函数调用另一个函数的时候,可能要保存一些寄存器状态,这么多寄存器,到底由谁保存,编译器的指导方针就是:
一部分由调用者保存——caller saved
一部分由被调用者保存——callee saved
由调用者保存的,在call执行前,要将相关寄存器压栈,然后ret返回后,再弹栈。
由被调用者保存的,在call执行后进入被调用函数,如果函数需要用到某些寄存器,这些寄存器是callee saved,那么必需先将这些寄存器压栈,等处理完在ret返回前,将这些寄存器弹栈。
相关文章推荐
- “asmlinkage” 的作用
- 各寄存器作用
- linux源码中asmlinkage的作用
- 常见寄存器名称及作用(A~L)
- DPTR是什么寄存器 它的作用是什么 它由哪几个寄存器组成
- 三星2442LCD控制器的有关寄存器的作用
- ARM汇编中lr(r14)寄存器的作用
- 汇编语言中各寄存器的作用
- Linux内核中__init, __initdata, __initfunc(), asmlinkage, ENTRY(), FASTCALL()等作用
- ARM汇编中lr(r14)寄存器的作用
- 汇编里寄存器的作用
- C++中有关volatile关键字的作用--阻止编译器将其变量优化缓存到寄存器(和线程相关)(转自百度)
- ASM-第二章寄存器
- 寄存器是什么 有什么作用
- ARMlr(r14)寄存器的作用
- 汇编各寄存器作用
- 寄存器是什么 有什么作用
- GPFUP上拉使能寄存器的作用
- C++各个寄存器的作用