鱼C论坛

 找回密码
 立即注册
查看: 3343|回复: 4

关于8086汇编中IRET指令的一个小疑问

[复制链接]
发表于 2012-11-3 22:02:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我特意在百度百科上查了下IRET的定义,如下:
  IRET(interrupt return)中断返回,其作用是从中断中恢复中断前的状态,具体作用有如下三点:
  1.恢复IP(instruction pointer)
  2.恢复CS(code segment)
  3.恢复中断前的PSW(program status word),即恢复中断前的标志寄存器的状态。
  以上操作按顺进行。

但在小甲鱼汇编直接定址表教程里那个例子,我实在想不出那个IRET到底是怎么返回的,麻烦各位大神帮我解释一下~
部分代码如下:
setscreen:
     jmp short set
     table  dw sub1,sub2,sub3,sub4

set:       
        push bx       
        cmp ah,3                ;判断传递的是否大于 3
        ja sret
        mov bl,ah
        mov bh,0
        add bx,bx                ;根据ah中的功能号计算对应子程序的地址在table表中的偏移
       
        call word ptr table[bx]        ;调用对应的功能子程序

sret:       
        pop bx       
        iret     ;---为什么这里用iret不用ret,如果执行完这一步后,接下来应该执行哪一步?

完整代码.rar (952 Bytes, 下载次数: 1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-12-13 16:17:25 | 显示全部楼层

回帖奖励 +2 鱼币

如果是中断处理程序IRET没问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-30 13:52:06 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2018-11-30 13:58:04 | 显示全部楼层

回帖奖励 +2 鱼币

提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-12-22 15:47:38 | 显示全部楼层

回帖奖励 +2 鱼币

看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 14:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表