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(返回权限发生变化)
 
以上操作按顺序进行。

汇编_指令_IRET的更多相关文章

  1. 汇编_指令_REP MOVESB 和 CLD

    先说说MOVSB(MOVe String Byte):即字符串传送指令,这条指令按字节传送数据.通过SI和DI这两个寄存器控制字符串的源地址和目标地址,比如DS:SI这段地址的N个字节复制到ES:DI ...

  2. 汇编_指令_JMP

    JMP指令 JMP是汇编语言中的无条件跳转指令.无条件跳转指令可转到内存中任何程序段.转移地址可在指令中给出,也可以在寄存器中给出,或在储存器中指出. 中文名:无条件跳转指令 外文名:JMP 和调用指 ...

  3. 汇编_指令_XCHG

    交换指令XCHG是两个寄存器,寄存器和内存变量之间内容的交换指令,两个操作数的数据类型要相同,可以是一个字节,也可以是一个字,也可以是双字 .其指令格式如下: XCHG Reg/Mem, Mem/Re ...

  4. 汇编_指令_INC

    加1指令 INC指令功能:目标操作数+1 INC指令只有1个操作数,它将指定的操作数的内容加1,再将结果送回到该操作数.INC指令将影响SF,AF,ZF,PF,OF标志位,但是不影响CF标志位. IN ...

  5. 汇编_指令_LEA和MOV的区别

    就是目标地址传送指令: 将一个近地址指针写入到指定的寄存器.格式: LEA reg16,mem16 其中reg16必须是一个16位通用寄存器,mem16必须是一个存储器,执行这个指令后,就将mem16 ...

  6. 汇编_指令_CS与DS的区别

    cs是值cpu执行的当前指令的段地址,ds是数据开始的段地址. CS是告诉CPU,去哪个位置找内容当成指令去执行:DS是告诉CPU,去哪个位置找内容当成数据被使用. datastring =ds co ...

  7. 汇编_指令_FLAGS

    标志名                                       标志 1           标志 0 OF   (溢出标志)                     OV     ...

  8. 汇编_指令_SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR

    ;SHL(Shift Left):      逻辑左移 ;SHR(Shift Right):      逻辑右移 ;SAL(Shift Arithmetic Left): 算术左移 ;SAR(Shif ...

  9. 汇编_指令_SUB

    SUB是减法运算. 比如mov ax,2mov bx,1sub ax,bx 其中sub ax,bx就是ax中的值减bx中的值,等于1,然后把结果,也就是1,放入ax中.

随机推荐

  1. Knockout 模板使用

    html 代码: @using GreenWay.Models; @{ Model.Scripts = new string[] { "~/Scripts/paginationViewMod ...

  2. css3 导入字体

    在CSS中导入字体或是字体ICON @font-face{ src: url("具体的字体地址"), url("具体的字体地址"); }

  3. javaScript 真经 小感 this 指向

    编程世界只存在两种基本元素:一个是数据.一个是代码. (能写代码算入门,能处理复杂场景或者数据算合格,能不变应万变是不朽) 最流行的编程思想莫过于面向对象编程,因为面向对象编程思想把数据和代码结合成统 ...

  4. css3 抖动

    1. html <div id="wrapper"> <section> <p class="shake freez shake-hard& ...

  5. netty做集群 channel共享 方案

    netty做集群 channel如何共享? 方案一: netty 集群,通过rocketmq等MQ 推送到所有netty服务端, channel 共享无非是要那个通道都可以发送消息向客户端, MQ广播 ...

  6. Leetcode 33

    //这题真的很有思维难度啊,前前后后弄了2个小时才写完.//一定要首先将连续的一段找出来,如果target在里面就在里面找,如果不在连续段里就在另一部分找.//如果后面二分到都是连续段也是没事了,我们 ...

  7. 牛客网——F小牛再战(博弈,不懂)

    链接:https://www.nowcoder.net/acm/contest/75/F来源:牛客网 题目描述 共有N堆石子,已知每堆中石子的数量,两个人轮流取石子,每次只能选择N堆石子中的一堆取一定 ...

  8. BootStrap--scroll

    滚动侦测 滚动侦测基本使用方法为: <body data-spy="scroll"> <nav class="navbar navbar-default ...

  9. c#常日期转换(转)

    DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21:25 Label2.Text = dt.ToFile ...

  10. window和Linux下Redis的安装及运行

    Window篇  Redis的官方目前公开的版本分为三个类别Stable.Beta和Unstable.这些版本一般只是针对Linux.Unix内核的系统,虽然官方的不支持Window系统,但是微软开源 ...