16_print.asm

来自「可作为接口实验的参考教材」· 汇编 代码 · 共 72 行

ASM
72
字号
;//*******************************************************************
;文件名:并口打印机控制程序 FOR 8088

;功能:并口打印机控制打印字符、汉字
 
;接线:对应连接打印机接口模块的BUSY、STROBE到8255模块的PC0、PC5。
;      连接8255模块的CS_8255到CPU模块的200H。
;//********************************************************************
PA8255    EQU 200H        ;8255PA口地址
PB8255    EQU 201H        ;8255PB口地址

PC8255    EQU 202H        ;8255PC口地址
PCTL8255  EQU 203H        ;8255控制口地址

CODE    SEGMENT
ASSUME  CS:CODE,DS:CODE
START:   
        PUSH    CS
        POP     DS                           
        MOV     DX,PCTL8255
        MOV     AL,81H              ;设置PA、PC5出,PC0入
        OUT     DX,AL
        
BEGIN: 
        MOV     BX,OFFSET DATA1     ;打印数据区指针
        MOV     CX,59               ;发送16个ASCII码
PRINT:	MOV     DX,PA8255
        MOV     AL,CS:[BX]	        ;取ASCII码
        OUT     DX,AL	            ;发送ASCII码

        MOV     DX,PCTL8255
        MOV     AL,0AH              ;PC5: STROBE置“0”,发送选通脉冲
        OUT     DX,AL
        NOP
        MOV     AL,0BH              ;PC5: STROBE置“1”,发送选通脉冲
        OUT     DX,AL  
WAIT1:   
        MOV     DX,PC8255         
        IN      AL,DX
        SHR     AL,1
        JC      WAIT1               ;忙,则等待  
        INC     BX                  ;不忙,指针增加1 
        LOOP    PRINT        
        
OK:     JMP     OK  
  
DATA1: ;DB       59                             ;1字符个数
       
       DB       0AH           ;走纸一行        ;1
       DB       1BH,36H,'H','E','L','L','O','!';8    
       DB       0DH           ;回车            ;1
       
       
       DB       0AH           ;走纸一行        ;1
       DB       1BH,38H,1     ;汉字打印命令    ;3
       DB       '浙','江','天','煌','科','技'  ;12
       DB       '实','业','有','限','公','司'  ;12
       DB       0DH           ;回车            ;1
      
       DB       1BH,36H,' ',' ',' '            ;5
       DB       1BH,38H,0,'天','堂','杭','州'  ;11
       DB       0AH           ;走纸一行        ;1
       DB       0AH           ;走纸一行        ;1
       DB       0AH           ;走纸一行        ;1
       DB       0AH           ;走纸一行        ;1  
                 


	 	CODE  ENDS
END     START    
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?