📄 输入10位bcd码,转换为16进制显示.asm
字号:
DATA SEGMENT
ECH01 DB "INPUT DECIMAL:$"
ECH02 DB "HEX RESULT IS:$"
ECH03 DB "TOO BIG!$"
ECH04 DB "WRONG!please input 10 wei bdc ma!$"
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 BX,0
MOV SI,0
MOV CL,1
NEW: MOV AH,1
INT 21H
SUB AL,30H
JB EXIT
CMP AL,9
JA EXIT
INC SI
AND SI,1
CMP SI,0
JG JUDGE
CBW
XCHG AX,BX
MOV CX,0AH
MUL CX
JC ERROR
XCHG AX,BX
ADD BX,AX
JC ERROR
JMP NEW
EXIT: RET
ERROR: MOV AH,9
MOV DX,OFFSET ECH03
INT 21H
MOV AH,4CH
INT 21H
JUDGE: CMP AL,0
JNG NEW
MOV AH,9
MOV DX,OFFSET ECH04
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
CMP DL,3AH
JL PRINT
ADD DL,7
PRINT: MOV AH,2
INT 21H
DEC CH
JNZ ROTATE
RET
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -