一步步学汇编(十一)内中断
中断:CPU不再接着(刚执行完得指令)向下执行,而是转去处理这个特殊的
信息
CPU用8位的中断类型码通过向量表找到相应的中断处理程序的入口地址。
中断向量:中断处理程序的入口地址
在8086CPU的机子中在内存0000:0000到0000:03E8的1000个单元中存放中断
向量表
一个表项存放一个中断向量,占两个字,高地址字存放段地址,低地址字存放
偏移地址
中断过程:
(1) (从中断信息中)取得中断类型码
(2) 标志寄存器的值入栈;(因为在中断过程中要改变标志寄存器的值,所以先将其保存起来)
(3) 设置标志寄存器的第8位TF和第9位IF的值为0
(4) CS的内容入栈
(5) IP的内容入栈
(6) 从内存地址为中断类型码*4和中断类型码*4+2的两个字单元中读取中断处理
程序的入口地址设置IP和CS
中断处理程序的常规编写步骤:
(1) 保存用到的寄存器
(2) 处理中断
(3) 恢复用到的寄存器
(4) 用iret指令返回
iret指令的功能类似于:
pop IP
pop CS
popf
这章的内容真tmd太难了~~~我要好好研究几天