⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4.asm

📁 将键盘输入的4位十六进制数转换成等值的十进制数送屏幕显示
💻 ASM
字号:
;将键盘输入的4位十六进制数转换成等值的十进制数送屏幕显示
DATA SEGMENT
MESG1 DB 'You NO. is 0237.',0AH,0DH,'$'
MESG2 DB 'Please input a 4-bit hexadecimal number:',0AH,0DH,'$'
H    DB  4 DUP (?)
N    DW 10000,1000,100,10,1
DATA ENDS
CODE SEGMENT
     ASSUME CS:CODE,DS:DATA
BIG: MOV AX,DATA
     MOV DS,AX
     MOV DX,OFFSET MESG1 
     MOV AH,9
     INT 21H

     MOV DX,OFFSET MESG2          ;显示提示信息Please input a 4-bit hexadecimal number:
     MOV AH,9
     INT 21H
DISP   MACRO   NNN
       MOV AH,0EH;  打字方式显示字符。
       MOV  AL,NNN
       INT    10H ; BIOS 10号功能调用
     ENDM


;接收键盘输入合法的4个十六进制字符存于H存储区,高位在低地址。
     MOV DI,OFFSET H
     MOV CX,4

L1: MOV AH,07H
    
     INT 21H
     
     CMP AL,'0'
     JB  L9
     CMP AL,'9'
     JA L2
     MOV DL,AL
     MOV AH,02H
     INT 21H
     MOV [DI],AL
     INC DI
     JMP L3
L2:  CMP AL,'A'
     JB L9
     CMP AL,'F'
     JA L9
     MOV DL,AL
     MOV AH,02H
     INT 21H
     MOV [DI],AL
     INC DI
     JMP L3
L9:DISP 7
   JMP L1
L3:  LOOP L1
     MOV DL,'H'           ;输出'H'字符
     MOV AH,02H
     INT 21H
     MOV DL,'='           ;输出'='字符
     MOV AH,02H
     INT 21H
;将4位十六进制字符转换成二进制数存于BX
     XOR BX,BX
     MOV CX,4
     MOV SI,OFFSET H
L4:  SHL BX,4
     LODSB
     CMP AL,'A'
     JB L5
     SUB AL,07H
L5:  SUB AL,30H
     OR BL,AL
     LOOP L4

;将BX中的二进制字数据转换成十进制数并显示在屏幕上
     MOV SI,OFFSET N
     MOV CX,5
L6:  LODSW
     XOR DL,DL
L7:  SUB BX,AX
     JC L8
     INC DL
     JMP L7
L8:  ADD BX,AX
     MOV AH,02H
     ADD DL,30H        ;将数转换成ASC码
     INT 21H
     LOOP L6
     MOV AH,4CH
     INT 21H



CODE ENDS
     END BIG
     
     
     
 
     
     

⌨️ 快捷键说明

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