汇编 | 屏幕显示数字

功能:PRINT子程序在屏幕上显示AL寄存器中的内容,0-9则在屏幕上显示0-9,大于9的在屏幕上显示英语字母。

DATA  SEGMENT
      TABLE   DB    1,2,8,9,    10,11,34,35,    36,37,40,41,   42,43,66,67 
                    ;1-9 显示 1-9
                    ;10-35 显示A-Z
                    ;36-41 显示其他字符
                    ;42-67 显示a-z       
      NUM     EQU   ($-TABLE)     
DATA  ENDS


CODE  SEGMENT
      ASSUME:  CS:CODE, DS:DATA       
START:MOV   AX,DATA
      MOV   DS,AX   
            
      MOV   CX,NUM      ;CX保存TABLE中数字个数,用于循环判断
      LEA   SI,TABLE    ;地址指针SI指向TABLE储存区首地址

L:    MOV   AL,[SI]
      CALL  PRINT
      INC   SI    
      LOOP  L         
                                                
      MOV   AH, 4CH
      INT   21H           
                   
;显示子程序 
PRINT PROC NEAR                
      PUSH  DX 
       
      MOV   DL,AL        
      CMP   DL,9        ;判断是否 <=9
      JLE   ADD1        ; 是  ---> ASCII码加30H     
      JNLE  ADD2        ;不是 ---> ASCII码加37H   
            
ADD1: ADD   DL,30H
      JMP   PRI     
               
ADD2: ADD   DL,37H        
      
PRI:  ;显示
      MOV   AH,02H       
      INT   21H                        
      ;加回车符
      MOV   DX,0DH       
      INT   21H       
      ;加换行符
      MOV   DL,0AH         
      INT   21H   
                           
      POP   DX       
      RET                       
PRINT ENDP

    
CODE  ENDS
    END   START

结果:

 对应关系:1-9 显示 1-9
                   10-35 显示A-Z
                   36-41 显示其他字符
                    42-67 显示a-z 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值