新建 文本文档.txt

来自「从键盘读入一个四位的十六进制数」· 文本 代码 · 共 53 行

TXT
53
字号
DATA SEGMENT
MSG1  DB  'Hex:', '$'
MSG2  DB  0DH, 0AH, 'Binary:', '$'
COUNT EQU 4
BUF DB 4 DUP(?)
DATA ENDS

CODE SEGMENT
      ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
       MOV DS, AX
       LEA DX, MSG1
       MOV AH, 9
       INT 21H
       MOV CX, COUNT
       MOV SI,   0
INPUT:               ;通过四次循环从键盘读入四位十六进制数
       MOV AH, 1
       INT 21H
       MOV BUF[SI], AL
       DEC CX
       INC   SI
      CMP CX, 0
       JNZ INPUT

NEXT3: LEA DX, MSG2
       MOV AH, 9
       INT 21H
       MOV CX, COUNT
       MOV SI, 0
NEXT2: MOV BL, BUF[SI]
        CMP   BL , '9'
        JBE   OK ; 读入的字符<=9 转向 OK: 
        SUB   BL,   7  ;读入字符>= 9   减7 
OK:   PUSH   CX 
       MOV CL ,4    
       SHL BL, CL   ; 逻辑左移4位,低4位à高4位
       MOV CX, 4    ; 4次循环将当前处理字符的4位二进制输出
NEXT1: MOV   DL, '0'
        SHL   BL, 1
        JNC   SKIP    
        INC   DL
SKIP: MOV   AH, 2
       INT 21H
       LOOP   NEXT1
       POP CX     ;
       INC   SI
       LOOP   NEXT2 ; 4次循环将4位十六进制数,每位转换为对应的4位二进制
EXIT: MOV AH,   4CH
       INT   21H
CODE   ENDS
         END START

⌨️ 快捷键说明

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