1、中断类型码:最多支持256个
0 |
除零错误 |
1 |
单步执行 |
2 |
不可屏蔽中断 |
4 |
执行into指令 |
2、中断过程/ int n
1) 取得终端类型码N
2) pushf
3) TF=0;IF=0
4) push CS
5) push IP
6) (IP)=(N*$),(CS)=(N*4+2)
3、中断返回:iret
1) pop IP
2) pop CS
3) popf
4、对堆栈操作的影响
1)设置ss,sp应当连续完成
2)pop,push完成之前不产生中断
5、BIOS中断——10h
1)设置光标位置
mov ah,2 ;置光标
mov bh,0 ;第0页
mov dh,5 ;dh放行号
mov dl,12 ;dl放列号
int 10h
2)在光标位置显示字符
mov ah,9 ;在光标位置显示字符
mov al,’a’ ;字符
mov bl,7 ;颜色属性
mov bh,0 ;第0页
mov cx,3 ;字符重复个数
int 10h
6、DOS中断——21h
1) 程序返回
mov ah,4ch ;程序返回
mov al,0 ;返回值
int 21h
2) 在光标位置显示字符串(以$结尾)
ds:dx 指向字符串 ;要显示的字符串以“$”结束
mov ah,9 ;功能号9,表示在光标位置显示字符串
int 21h
7、端口:
1) 由总线控制;端口范围为0~65525;
2) in和out分别用于从端口读写数据;
3) 8位使用al;16位使用ax;
4) 0~255端口读写(直接):
in al,20h ; 从20h端口读入
out 20h,al ; 向20h端口写出
5)256~65535端口读写(端口号放到dx中)
mov dx,3f8h
in al,dx
out dx,al
8、逻辑左移:shl;逻辑右移:shr; 补齐0;