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

📄 3.asm

📁 将用户从键盘输入的十进制数(不超过65535)转换成为十六进制数并显示。如果输入不是0~9的数字
💻 ASM
字号:
.MODEL SMALL
.DATA
MESSAGE DB 0DH,0AH,'ERROR!$'
TABLE   DB '0123456789ABCDEF' ;十六进制数对应ASCII表
SHOW    DB 0DH,0AH,'$'
.CODE
.STARTUP
      MOV BX,10
      MOV SI,0 ;保存转换后的十六进制数
      MOV CX,4
AGAIN:MOV AH,1
      INT 21H
      CMP AL,0DH ;输入的是结束符(回车)
      JE DISP
      CMP AL,3AH ;若输入的不是数字,则显示信息提示
      JNC ERROR
      CMP AL,30H
      JC ERROR
      AND AX,000FH ;ASCII码转换为数字
      XCHG AX,SI  ;SI<=SI*10+AX
      MUL BX
      ADD SI,AX
      JMP AGAIN
;显示十六进制数
DISP: LEA DX,SHOW
      MOV AH,9
      INT 21H
      MOV DX,SI
      LEA BX,TABLE
NEXT: ROL DX,1
      ROL DX,1
      ROL DX,1
      ROL DX,1  ;从最高位到最低位依次转换
      PUSH DX
      MOV AL,DL
      AND AL,0FH
      XLAT   ;查表得ASCII码并输出
      MOV DL,AL
      MOV AH,2
      INT 21H
      POP DX
      LOOP NEXT
      JMP EXIT
ERROR:LEA DX,MESSAGE
      MOV AH,9
      INT 21H
EXIT: MOV AH,4CH
      INT 21H
END

⌨️ 快捷键说明

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