1
3
Gcc将自动保存和恢复所有被叫方保存寄存器 它知道的 。它知道自己使用的寄存器,但只有当你告诉它时,它才会知道内联程序集中使用的寄存器。这就是“打击者”名单的目的:
现在编译器知道您正在使用/修改rbx,因此如果需要,它会保存它。 请注意,您确实想这样做,而不是自己尝试保存它,因为这样,如果gcc还想在这个函数中使用寄存器,它将只保存一次。 |
2
1
用死记硬背的方式保存和恢复每个寄存器,这将是一段相当棘手的代码。编译器将寄存器保存在它编译过的C代码中,但在这里,你是自己的,gcc不知道你的意图是什么。 装配工可以让你钻到发动机罩下面,但它不会替你更换火花塞。 |
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |