iret
IRET
IRET(interrupt return)中断返回,中断服务程序的最后一条指令。
指令介绍
汇编指令IRET
【指令格式】IRET
【指令功能】IRET(interrupt return)中断返回,中断服务程序的最后一条指令。IRET指令将推入堆栈的段地址和偏移地址弹出,使程序返回到原来发生中断的地方。其作用是从中断中恢复中断前的状态,具体作用有如下三点:
1.恢复IP(instruction pointer):IP←((SP)+1:(SP)),SP←SP+2
2.恢复CS(code segment):CS←((SP)+1:(SP)), SP←SP+2
3.恢复中断前的PSW(program status word),即恢复中断前的标志寄存器的状态。
FR←((SP)+1:(SP)),SP←SP+2
4.恢复ESP(返回权限发生变化)
5.恢复SS(返回权限发生变化)
以上操作按顺序进行。
指令手册原文
the IRET instruction pops the return instruction pointer, return code segment selector, and EFLAGS image from the stack to the EIP, CS, and EFLAGS registers, respectively, and then resumes execution of the interrupted program or procedure. If the return is to another privilege level, the IRET instruction also pops the stack pointer and SS from the stack, before resuming program execution.
IRET指令影响所有标志位。
参考资料
最新修订时间:2023-06-29 10:05
目录
概述
指令介绍
参考资料