📄 8-15.asm
字号:
;把小于200的十进制数转化为十六进制数
DATA SEGMENT
DECIMAL DB 4,0,4 DUP(0)
HEX DB 3 DUP(0)
STRING DB 'PLEASE ENTER SAN WEI DECIMAL NUNBER SMALLER THAN 200:','$'
STRING1 DB 0AH,0DH,'THE HEX NUMBER IS:','$'
STRING2 DB 0AH,0DH,'THE NUMBER YOU DIAL IS INCORROCT!!!!',0AH,0DH,'PLEASE ENTER CORRECT NUMBER:','$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
COSEG SEGMENT
ASSUME CS:COSEG,DS:DATA,SS:STACK1
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STRING
MOV AH,09H
INT 21H
JMP LOP
LOP1: MOV DX,OFFSET STRING2
MOV AH,09H
INT 21H
LOP: MOV DX,SEG DECIMAL
MOV DS,DX
MOV DX,OFFSET DECIMAL
MOV AH,0AH
INT 21H
MOV CL,DECIMAL[2]
CMP CL,'0'
JC LOP1
CMP CL,'3'
JNC LOP1
LOP2: AND CL,0FH
MOV AL,CL
MOV CL,100
MUL CL
MOV CL,AL
XOR AX,AX
MOV BL,DECIMAL[3]
CALL DEC1
JC LOP
AND BL,0FH
MOV AL,0AH
MUL BL
ADD AL,CL
MOV BL,DECIMAL[4]
CALL DEC1
JC LOP
AND BL,0FH
ADD AL,BL
CMP AL,0C9H
JNC LOP1
PUSH AX
AND AL,0FH
CMP AL,0AH
JC LOP3
ADD AL,37H
JMP LOP4
LOP3: ADD AL,60Q
LOP4: MOV HEX[1],AL
POP AX
MOV CL,10H
DIV CL
AND AL,0FH
CMP AL,0AH
JC LOP5
ADD AL,37H
JMP LOP6
LOP5: ADD AL,30H
LOP6: MOV HEX[0],AL
MOV HEX[2],24H
MOV DX,OFFSET STRING1
MOV AH,09H
INT 21H
MOV DX,OFFSET HEX
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
DEC1 PROC
CMP BL,'0'
JC ERROR
CMP BL,3AH
JNC ERROR
CLC
RET
ERROR: STC
MOV DX,OFFSET STRING2
MOV AH,09H
INT 21H
RET
DEC1 ENDP
COSEG ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -