明月 发表于 2012-11-3 22:02:20

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

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

但在小甲鱼汇编直接定址表教程里那个例子,我实在想不出那个IRET到底是怎么返回的,麻烦各位大神帮我解释一下~
部分代码如下:
setscreen:
   jmp short set
   tabledw 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        ;调用对应的功能子程序

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


~逆天~ 发表于 2013-12-13 16:17:25

如果是中断处理程序IRET没问题

whdd 发表于 2018-9-30 13:52:06

{:9_218:}

学学看看 发表于 2018-11-30 13:58:04

X用户 发表于 2018-12-22 15:47:38

看看
页: [1]
查看完整版本: 关于8086汇编中IRET指令的一个小疑问