编写一个程序,从键盘输入一个 0~65535 之间的 10 进制无符号数,然后以 16 进制形式显示出所输入的数。
CODE SEGMENT
ASSUME CS:CODE
MAIN PROC FAR
XOR BX,BX
MOV AX,0
MOV SI,10
L1:MOV AH,1
INT 21H
CMP AL,0DH
JE L3
AND AX,0FH
XCHG AX,BX
MUL SI
;CMP AX,65535
JC L6 ;当结果超出范围,直接结束
ADD BX,AX
;CMP BX,65535
JC L6 ;当结果超出范围,直接结束
JMP L1
L3:MOV CX,4
L4:PUSH CX
MOV CL,4
ROL BX,CL
MOV DX,BX
AND DX,0FH
ADD DL,30H
CMP DL,39H
JBE L5
ADD DL,7
L5:MOV AH,2
INT 21H
POP CX
LOOP L4
L6:MOV AH,4CH
INT 21H
MAIN ENDP
CODE ENDS
END MAIN
注意知识点:
输入一个十进制数,判断是否超出范围是采用JC指令,而不是比较是否大于65535,因为一旦超出就会产生溢出,数反而变小了。