您的位置:首页 > 其它

[ASM] 64bit寄存器的作用

2012-09-07 17:08 260 查看


图中指明了64bit的通用寄存器共有16个,访问不同大小时有不同名称。

另外就是后面的说明,当一个函数调用另一个函数的时候,可能要保存一些寄存器状态,这么多寄存器,到底由谁保存,编译器的指导方针就是:

一部分由调用者保存——caller saved

一部分由被调用者保存——callee saved

由调用者保存的,在call执行前,要将相关寄存器压栈,然后ret返回后,再弹栈。

由被调用者保存的,在call执行后进入被调用函数,如果函数需要用到某些寄存器,这些寄存器是callee saved,那么必需先将这些寄存器压栈,等处理完在ret返回前,将这些寄存器弹栈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: