【发布时间】:2012-05-14 19:51:56
【问题描述】:
IRET可以从堆栈中恢复寄存器,包括EFLAGS、ESP、EIP等,但我们也可以自己恢复所有寄存器。例如,“movl”可以用来恢复%esp寄存器,“jmp”可以跳转指向EIP的地址,该地址存储在堆栈中。
linux内核通过IRET从所有中断中返回,这是一个权重指令。
一些内核操作(如上下文切换)经常发生。
IRET不是浪费吗?
【问题讨论】:
-
什么是“重量说明”?
-
指令做了大量的工作,而且成本很高。
标签: linux assembly operating-system linux-kernel x86