1、INT 17H(打印机I/O调用)
INT 17H中断处理程序有三个功能:
当AH=0时,把AL中的字符在打印机上打印出来。
当AH=1时,把AL中的初始化控制命令送给打印机。
当AH=2时,把打印机的状态读至AL寄存器。
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
忙
|
确认
|
有纸
|
联机
|
错误
|
/
|
/
|
超时
|
寄存器AH中的值决定一个中断处理程序的功能,称其为"功能号"。当AH=0时调用INT 17H中断,称为"INT 17H的0号功能",可以简记为"
INT 17H/0"
例1
用打印机打印一串字符。
MOV BX,OFFSET STRING
MOV CX,count
L1:MOV DX,0
MOV AL,[BX]
MOV AH,0 ;调用INT 17H/0,
INT 17H ;把AL中的字符在打印机上打印出来
INC BX
LOOP L1
MOV BX,OFFSET STRING
MOV CX,count
L1:MOV DX,0
MOV AL,[BX]
MOV AH,0 ;调用INT 17H/0,
INT 17H ;把AL中的字符在打印机上打印出来
INC BX
LOOP L1
STRING DB 'abcduxyz'
count EQU $-STRING
2、INT 16H(键盘I/O中断)
AH=0:从键盘读入ASCII字符,放在AL中。
AH=1:测试有无键被按下。ZF=0,表示按过任意键,并在AL中获 得该键的ASCII码。ZF=1,未按过键。
AH=2:读取特殊功能键的状态至AL中。
count EQU $-STRING
2、INT 16H(键盘I/O中断)
AH=0:从键盘读入ASCII字符,放在AL中。
AH=1:测试有无键被按下。ZF=0,表示按过任意键,并在AL中获 得该键的ASCII码。ZF=1,未按过键。
AH=2:读取特殊功能键的状态至AL中。
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
Ins
|
CapsLock
|
NumLock
|
ScrollLock
|
Alt
|
Ctrl
|
左Shift
|
右Shift
|
例2
MOV AH,0
INT 16H
3、 INT 1AH (BIOS日期、时间中断)
AH=0:读当前时钟值到CX、DX中。CX为高位,DX为低位。时钟单位是54.9ms(1/18.2秒)(65536000/1193180)。
AH=1:设置当前时钟值。
例3
计算子程序PROCESS执行的时间。
STI
MOV CX,0
MOV DX,0
MOV AH,1;设置当前时钟为0。
INT 1AH
CALL PROCESS
MOV AH,0;读当前时钟到CX、DX中。
INT 1AH
将CX、DX中的四字节数除以18.2,得PROCESS执行的时间秒数。