例8.8 当打印机不能正常打印(非硬件故障)时,提示使用者其原因,以便解决打印问题。
解: | ||||
.MODEL SMALL .DATA MSG1 DB "Time Out$” MSG2 DB "I/O Error$” MSG3 DB "Out of Paper$” TOut EQU 01H IOErr EQU 08H OPaper EQU 20H .CODE |
||||
.STARTUP | ||||
…… | ||||
MOV | AH, 1 | |||
MOV | DX, 0 | |||
INT | 17H | ;初始化连接在LPT1上的打印机 | ||
…… | ||||
MOV | AH, 2 | |||
MOV | DX, 0 | |||
INT | 17H | ;读取LPT1打印机的状态字节 | ||
TEST | AL, TOut or IOErr or OPaper | |||
JNZ | ErrMsg | |||
…… | ||||
ErrMsg: | ||||
TEST | AL, TOut | |||
JZ | next1 | |||
LEA | DX, MSG1 | ;Time Out | ||
JMP | disp | |||
next1: | ||||
TEST | AL, IOErr | |||
JZ | next2 | |||
LEA | DX, MSG2 | ;I/O Error | ||
JMP | disp | |||
next2: | ||||
LEA | DX, MSG3 | ;Out of Paper | ||
disp: | ||||
MOV | AH, 9H | |||
INT | 21H | |||
…… | ||||
.EXIT 0 | ||||
END |