htob.asm

来自「汇编语言把一个十六进制数转换成32位二进制数」· 汇编 代码 · 共 86 行

ASM
86
字号
十六进制转换成32位二进制
;************************************************************
DATA SEGMENT
MES DB 'enter a hex data:$'
DATA ENDS
;************************************************************
CODE SEGMENT
;------------------------------------------------------------
HTOB PROC FAR
ASSUME CS:CODE ,DS:DATA
MOV AX,DATA
MOV DS,AX
START:
MOV AH,9
LEA DX,MES
INT 21H
PUSH DS
SUB AX,AX
PUSH AX
CALL INPUT
CALL CRLF
CALL PRINT
CALL CRLF
JMP START
RET
HTOB ENDP
;-----------------------------------------------------------
INPUT PROC NEAR
MOV BX,0
NEWCHAR:
MOV AH,1
INT 21H
SUB AL,30H
JL EXIT
CMP AL,10D
JL ADDTO
SUB AL,27H
CMP AL,0AH
JL EXIT
CMP AL,10H
JGE EXIT
ADDTO:
MOV CL,4
SHL BX,CL
MOV AH,0
ADD BX,AX
JMP NEWCHAR
EXIT:
RET
INPUT ENDP
;---------------------------------------------------
PRINT PROC NEAR
MOV CX,16D
ROT:
SHL BX,1D
JC SET
MOV DL,30H
MOV AH,2
INT 21H
DEC CX
JNZ ROT
RET
SET:
MOV DL,31H
MOV AH,2
INT 21H
DEC CX
JNZ ROT
RET
PRINT ENDP
;------------------------------------------------------
CRLF PROC NEAR
MOV DL,0AH
MOV AH,2
INT 21H
MOV DL,0DH
MOV AH,2
INT 21H
RET
CRLF ENDP
;---------------------------------------------------------
CODE ENDS
;*********************************************************
END HTOB
;3Q

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?