ex21.asm

来自「题目:抢答器控制模拟程序设计 任务: 用汇编语言模拟设计一抢答器工作的程」· 汇编 代码 · 共 45 行

ASM
45
字号
;-----多字节数对16进指数的显示
;入口:SI指向要显示的数据,CX=显示的字节数
;出口:DI指向已转换好的ASCII数


EX21  PROC  NEAR
         PUSH  AX          
   DO:   MOV      AL,[SI]             ;取一个字节到AL 
         CALL     EX2_16              ;调转换子程序
         DEC      SI                  ;指向下个数 
         LOOP     DO
         POP   AX             
         RET
EX21    ENDP
         
;--------2 exchange 16-----
;将一个8位2进制数转换为2个16进指数ASCII码并显示
;入口:AL=数据

 EX2_16 PROC    NEAR
        PUSH     CX              ;保护现场
        PUSH     BX
        PUSH     DX
 G1:   MOV      BL,2             ;需转换2次
       MOV      BH, AL           ;AL中的数暂存BH
       MOV      CL, 4            ;置移位位数
       ROL      AL, CL           ;循环左移4位
G2:    AND      AL, 0FH          ;得到低4位
       CMP      AL,10            ; BL <10?
       JB       S                 ; BL<10,转
       ADD      AL,07H           ;大于10,加7
  S:   ADD      AL,30H
;--------显示一个ASCII码 --------
         MOV      DL,AL          ;送ASCII码
         MOV      AH,2
         INT      21H             ;显示一个ASCII码 
       MOV   AL,BH
       DEC   BL                  
       JNZ   G2                ;2个数没转换完,继续
;恢复现场
       POP   DX
       POP   BX 
       POP   CX
       RET                     ;子程序返回
 EX2_16   ENDP

⌨️ 快捷键说明

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