CPU内中断-int引发中断

xiaoxiao2021-02-28  56

int指令的格式为int n,其中n为中断类型码,它的功能就是引发中断过程,执行过程如下所示

1、取中断类型码n2、标志寄存器入栈,IF=0,TF=03、CS、IP入栈4、(IP)=(n*4),(CS)=(n*4+2),做的就是去执行n号中断的中断处理程序 assume cs:code code segment start:mov ax,0b800h mov es,ax mov byte ptr es:[12*160+40*2],'!' int 0 code ends end start

调用结果

我们可以看到其实就是在屏幕中间显示出了一个 ! 的符号,以及出现了除法溢出的提示,但其实我们是没有去进行除法运算的,只是因为这里去调用了int 0指令,所以会引发中断,然后去执行0号中断的处理程序,0号的中断处理程序就是去显示”Divide overflow”,然后返回

其实int指令的功能和call指令是类似的,都是去调用一段程序,一般来说,系统会将一些具有一定功能的子程序以中断处理程序的方式提供给应用程序调用,我们可以去通过int指令去调用这些子程序

转载请注明原文地址: https://www.6miu.com/read-2631995.html

最新回复(0)