1、int 21h 形如这样的中断为int中断,后跟中断码,它属于内中断
2、过程:取中断码(如上21H)
pushf , IF=0, TF=0
CS:IP入栈
ip=4*n, CS=4*n+2
3、开机过程
开机,CPU加电,CS=0ffffH,IP=0,从CS:IP处执行程序,FFFF:0是转跳指令,跳到BiOS中进行硬件检测与初始化;
初始化程序建立BIOS所支持的中断向量表。其中断例程固化在ROM中
初始化完成后,调用int19h,19h引导操作系统,完成后操作操作系统控制全部软硬件。
DOS完成后,再建立其它的中断例程。
开机-->FFFF:0-->跳转至初始化--->装入向量表---->int 19h--->引导操作系统---->dos--->装入其它例程
4、一个中断有多个例程,将根据参数来判断调用哪个例程。
mov ah,2 ;置光标功能
mov bh,0 ;第0页
mov dh,5 ;第5行
mov dl,12 ;第12列
int 10h ;实现功能
上面就是int 10h中一个例程,当ah=2时就是放置光标位置的功能例程
mov ah,9 ;在光标处显示字符功能
mov al,'a' ;字符
mov bl,7 ;颜色属性
mov bh,0 ;第0页
mov cx,3 ;字符重复个数
int 10h ;执行
上面是int 10h中一个例程,ah=9时,是在光标处显示字符的功能
颜色参数: 7 6 5 4 3 2 1 0
BL R G B I R G B
闪烁 背景 高亮 前景
5、常见的回DOS状态的中断
mov ah,4ch ;程序返回功能
mov al,0 ;返回值
int 21h
6、在光标位置显示字符串的功能(字符串以$结束)
ds:dx 指向的字符串 ;要显示的字符串用"$“作为结束符
mov ah ,9 ;功能9,显示字符串
int 21h