📄 d.asm
字号:
DATA SEGMENT
MESG1 DB 'Enter a decimal number:',0DH,0AH, '$'
MESG2 DB 0DH,0AH,'The converted hexadecimal number is '
RES_1 DB 4 DUP(?),'H ',0DH,0AH, '$'
MESG3 DB 0DH,0AH,'Input error!',0DH,0AH, '$'
BUF DB 6
DB ?
DB 5 DUP(?)
COUNT DB 4
DATA ENDS
STACK SEGMENT STACK
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV AX, DATA
MOV DS, AX
MOV AH,9
MOV DX,OFFSET MESG1
INT 21H
MOV AH,0AH
MOV DX,OFFSET BUF
INT 21H
MOV BX,OFFSET BUF+2
MOV DX,0
AGAIN2: MOV CX,10
MOV AX,0
MOV AX,DX
MUL CX
MOV DX,AX
MOV AX,[BX]
AND AX,00FFH
ADD AX,-30H
CMP AX,10
JNC STEP_END
CMP AX,0
JC STEP_END
ADD DX,AX
INC BX
DEC BUF+1
JNZ AGAIN2
CALL T2_16
MOV AH,9
MOV DX,OFFSET MESG2
INT 21H
JMP START
STEP_END:MOV AH,9
MOV DX,OFFSET MESG3
INT 21H
JMP START
T2_16 PROC
MOV DI,OFFSET RES_1
MOV SI,OFFSET RES_1+2
MOV COUNT,2
MOV AL,DH
AND AX,00FFH
MOV CL,8
SAL AX,CL
SAL DX,CL
LAST: MOV CL,4
ROL DX,CL
ROL AX,CL
AND DL,0FH
AND AL,0FH
CMP DL,10
JC NEXT
ADD DL,7H
NEXT: ADD DL,30H
MOV [SI],DL
INC SI
CMP AL,10
JC NEXT1
ADD AL,7H
NEXT1: ADD AL,30H
MOV [DI],AL
INC DI
DEC COUNT
JNZ LAST
RET
T2_16 ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -