📄 3.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 + -