关于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,如果执行完这一步后,接下来应该执行哪一步?
如果是中断处理程序IRET没问题 {:9_218:} 看看
页:
[1]