8086CPU中断过程
- 1、(从中断信息中)取得中断类型码;
- 2、标志寄存器的值入栈(因为在中断过程中要改变标志寄存器的值,所以先将其保存在栈中);
- 3、设置标志寄存器的第8位TF和第9位IF的值为0;
- 4、CS的内容入栈;
- 5、IP的内容入栈;
- 6、从内存地址为中断类型码4和中断类型码4+2的两个字单元中读取中断处理程序的入口地址设置IP和CS。
汇编中段处理程序的编写方法和子程序的比较相似:
- 1、保存用到的寄存器;
- 2、处理中断;
- 3、恢复用到的寄存器;
- 4、用iret指令返回。
iret指令的功能:
- 1、pop IP
- 2、pop CS
- 3、popf
访问端口
- in al,60h; 从60h号端口读入一个字节
- 在in和out指令中,只能使用ax或al来存放从端口中读入的数据或要发送到端口中的数据。访问8位端口时用al,访问16位端口时用ax。
shl逻辑左移指令
- 将一个寄存器或内存单元中的数据向左移位
- 将最后移出的一位写入CF中
- 最低位用0补充
shr逻辑右移指令
- 将一个寄存器或内存单元中的数据向右移位
- 将最后移出的一位写入CF中
- 最高位用0补充
直接定址表
- 略。