📄 5.txt
字号:
DSeg SEGMENT
keybuf DB 6
keynum DB ?
keychar DB 6 DUP(?)
messege1 DB 'please input a decimal integer <=65535:$' ,0dh,0ah
messege2 DB 'you input integer is:$',0dh,0ah
buf DB 6 DUP(?)
buf1 DB 7 DUP(?),0dh,0ah,'$'
DSeg ENDS
code SEGMENT
ASSUME DS:DSeg,CS:code
start:
MOV AX,DSeg
MOV DS,AX
LEA DX,messege1
MOV AH,9
INT 21h
CALL crlf
MOV DX,OFFSET keybuf
MOV AH,10
INT 21h
CALL DtoB
CALL btoh
CALL display
MOV AH,4ch
INT 21h
dtob PROC NEAR
LEA SI,keychar
MOV CX,keynum
XOR CH,CH
MOV AX,0
lp:
MOV BL,[SI]
SUB BL,30h
PUSH CX
MOV CX,10
MUL CX
POP CX
XOR BH,BH
ADD AX,BX
INC SI
LOOP lp
RET
dtob ENDP
btoh PROC NEAR
XOR BX,BX
LEA SI,buf
MOV CH,4
lp1: MOV CL,4
ROL AX,CL
MOV BL,AL
AND BL,0fh
ADD BL,30h
CMP BL,3ah
JL lp2
ADD BL,7h
lp2: MOV [SI],BL
INC SI
DEC CH
JNZ lp1
MOV BL,'H'
MOV [SI],BL
INC SI
RET
btoh ENDP
display PROC NEAR
MOV CX,SI
LEA AX,buf
SUB CX,AX
LEA DI,buf1
LEA SI,buf
lp3: MOV BL,[SI]
MOV [DI],BL
INC SI
INC DI
LOOP lp3
CALL crlf
LEA DX,messege2
MOV AH,9
INT 21h
CALL crlf
LEA DX,buf1
MOV AH,9
INT 21h
RET
display ENDP
crlf PROC NEAR
PUSH DX
PUSH AX
MOV DL,0Dh
MOV AH,2
INT 21h
MOV DL,0ah
MOV AH,2
INT 21h
POP AX
POP DX
RET
crlf ENDP
code ENDS
END start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -