📄 从键盘输入一个十进制数,二进制显示.asm
字号:
DATA SEGMENT ;从键盘输入一个十进制数(<=65535),转换为十六进制后,
ECH01 DB "INPUT DECIMAL:$" ;用二进制在屏幕上显示出来
ECH02 DB "HEX RESULT IS:$"
ECH03 DB "TOO BIG!$"
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 ;输入与转换
NEW: MOV AH,1
INT 21H
SUB AL,30H
JB EXIT
CMP AL,9
JA EXIT
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
BINHEX: MOV CH,16 ;输出子句
MOV CL,1
REAP: ROL BX,CL
MOV DL,BL
AND DL,1
CMP DL,0
JG PRINT
CMP CH,1 ;假如输入0,输出0
JNG PRINT
DEC CH
JNZ REAP
JMP OK
RREETT: ROL BX,CL
MOV DL,BL
AND DL,1
PRINT: ADD DL,30H
MOV AH,2
INT 21H
DEC CH
JNZ RREETT
OK: RET
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -