📄 prtdrv.asm
字号:
;FILENAME: PRTDRV.ASM
;内容:打印 PRINTER DRIVER
DATA SEGMENT
BUF DB '123456',0AH,0DH, '$'
N=$-BUF
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS,AX
CALL INIT ;调用打印机初始化子程序
MOV CX, N
LEA SI,BUF
LOP: MOV AL, [SI]
CALL PRINT ;调用打印子程序
LOOP LOP
MOV AH, 4CH
INT 21H
; ———初始化子程序———
INIT PROC
PUSH AX
PUSH DX
MOV DX, 37AH
MOV AL, 08H
OUT DX, AL ;初始化控制字送打印机
MOV AX, 1000
INIT_1:
DEC AX ;延时
JNZ INIT_1
MOV AL, 0CH
OUT DX, AL ;向打印机输送控制字
POP DX
POP AX
RET
INIT ENDP
;---打印子程序---
PRINT PROC
PUSH AX
PUSH DX
MOV DX, 378H
OUT DX,AL ;输出待打印字符
INC DX
WAT: IN AL, DX
TEST AL, 80H ;测试打印机忙否
JZ WAT ;忙,则循环等待
MOV DX, 37AH ;不忙,向打印机送选通信号
MOV AL, 0DH
OUT DX, AL
NOP
NOP
MOV AL,0CH ;在STROBE引脚得到触发信号
OUT DX, AL
POP DX
POP AX
RET
PRINT ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -