
我们可以用中断类型码,在中断向量表中找到中断处理程序的入口。找到这个入口地址的最终目的是用它设置CS和IP,使CPU执行中断处理程序。用中断类型码找到中断向量,并用它来设置CS和IP,这个工作是由CPU的硬件自动完成的。CPU硬件完成这个工作的过程被称为中断过程。
下面是8086CPU在收到中断信息后,所引发的中断过程。
2)标志寄存器的值入栈(因为在中断过程中要改变标志寄存器的值,所以先将其保存在栈中)
3)设置标志寄存器的第8位TF和第9位IF的值为0;
4)CS的内容入栈;
5)IP的内容入栈;
6)从内存地址为中断类型码 4和中断类型码 4+2的两个字单元中读取中断处理程序的入口地址设置IP和CS。
可以简洁的描述如下:
1)取得中断类型码N
2)pushf
3)TF=0,IF=0
4)push CS
5)push IP
被零除既非软中断,也非硬中断,所以实际上它是一个异常。与软、硬中断不同,异常恢复时执行的代码为异常发生的代码,而非异常之后的代码。
因此若保存了dx,则此中断处理完成后依然要执行div 0的指令,因此不断产生零除错误,也就是不断重复产生这一中断,所以不能保存dx。
第一步把0号中断向量设置成0000:0200h(0号中断发生时CS为0000 IP为0200h)
第三步把int0到int0end的代码复制到00200h中去了
注意到int0处的第一个指令是jmp short int0start
这条语句的汇编代码为0ebh(jmp short *** 作码) 02h(偏移量)
所以紧接着的db "my name is xiongbingxin" 的首地址安排在了0000(CS就是0000):0202h了
以上就是关于8086汇编(39)中断过程全部的内容,包括:8086汇编(39)中断过程、是关于汇编语言的软中断执行问题。、汇编语言中中断程序的中一个问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)