📄 从键盘输入4位十六进制数,十进制显示.asm
字号:
DATA SEGMENT ;从键盘输入一个4位十六进制数,转换为十进制数后显示在屏幕上
ECH01 DB "INPUT DECIMAL:$"
ECH02 DB "HEX RESULT IS:$"
ECH03 DB "TOO BIG!$"
DATA ENDS
CRLF MACRO
MOV AH,2
MOV DL,0AH
INT 21H
MOV AH,2
MOV DL,0DH
MOV AH,2
MOV DL,0DH
INT 21H
ENDM
CODE SEGMENT
ASSUME CS:CODE
START: MOV AX,DATA
MOV DS,AX
REPEAT: MOV AH,9
MOV DX,OFFSET ECH01
INT 21H
CALL DECBIN
CRLF
MOV AH,9
MOV DX,OFFSET ECH02
INT 21H
CALL BINHEX
CRLF
JMP REPEAT
DECBIN: MOV CH,4
MOV CL,4
MOV BX,0
NEW: MOV AH,1
INT 21H
SUB AL,30H
JB EXIT
SHL BX,CL
CMP AL,0FH
JG EXIT
OR BL,AL
DEC CH
JNZ NEW
CMP BX,270FH
JG ERROR
MOV CH,4
MOV CL,4
MOV BP,10
MOV AX,BX
XOR BX,BX
RETRY: SHR BX,CL
MOV DX,0
DIV BP
ROR DX,CL
OR BX,DX
DEC CH
JNZ RETRY
EXIT: RET
ERROR: MOV AH,9
MOV DX,OFFSET ECH03
INT 21H
MOV AH,4CH
INT 21H
BINHEX: MOV CH,4
ROTATE: MOV CL,4
ROL BX,CL
MOV DL,BL
AND DL,0FH
ADD DL,30H
MOV AH,2
INT 21H
DEC CH
JNZ ROTATE
RET
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -