前言
参考书籍:
王爽。汇编语言。北京:清华大学出版社, 2013:1-1
本人菜狗一枚,不敢咬文嚼字,只能站在巨人的肩膀上窥探一下未曾了解的世界。
中断信息可以来自 CPU 的内部和外部,当 CPU 的内部由需要处理的事情发生的时候,将产生需要马上处理的中断信息,引发中断过程。
int 指令
int 指令的格式:int n
n 为中断类型码,它的功能是引发中断过程。
CPU 执行 int n 指令,相当于引发一个 n 号中断的中断过程,执行过程如下。
- 取中断类型码 n;
- 标志寄存器入栈,IF = 0,IF = 0;
- CS、IP 入栈;
- (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 指令调用这些子程序,当然,也可以自己编写一些中断处理程序供别人使用。
编写供应用程序调用的中断例程
assume cs:code
code segmnet
start:
mov ax, 3456
int 7ch
add ax, ax
abc dx, dx
mov ax, 4c00h
int 21h
code ends
end start