⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 从键盘输入4位十六进制数,十进制显示.asm

📁 汇编程序中的数制转换与DOS调用功能的结合
💻 ASM
字号:
DATA SEGMENT                      ;从键盘输入一个4位十六进制数,转换为十进制数后显示在屏幕上
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 CH,4
	MOV CL,4
	MOV BX,0
NEW:	MOV AH,1
	INT 21H
	SUB AL,30H
	JB EXIT
	SHL BX,CL
        CMP AL,0FH
	JG EXIT
	OR BL,AL
	
	DEC CH
	JNZ NEW
	
	CMP BX,270FH
	JG  ERROR
	
	MOV CH,4
        MOV CL,4
        MOV BP,10
	MOV AX,BX
        XOR BX,BX
RETRY:  SHR BX,CL
	MOV DX,0
        DIV BP 
	ROR DX,CL
        OR  BX,DX
	DEC CH
	JNZ RETRY	
	
EXIT:   RET
ERROR:  MOV AH,9
	MOV DX,OFFSET ECH03
	INT 21H
	MOV AH,4CH
	INT 21H

BINHEX: MOV CH,4
ROTATE: MOV CL,4
	ROL BX,CL
	MOV DL,BL
	AND DL,0FH
	ADD DL,30H
	MOV AH,2
	INT 21H
	DEC CH
	JNZ ROTATE	
	RET
CODE ENDS
END START




				

⌨️ 快捷键说明

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