prtdrv.asm

来自「此程序是微机与接口技术的课程设计源程序 」· 汇编 代码 · 共 59 行

ASM
59
字号
;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 + =
减小字号Ctrl + -
显示快捷键?