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

📄 从键盘输入两个十六进制数,转换为十进制显示在屏幕.asm

📁 汇编程序中的数制转换与DOS调用功能的结合
💻 ASM
字号:
DATA SEGMENT                             ;从键盘输入两个十进制数,相加后结果显示在屏幕上
ECH01 DB "INPUT THE FIRST NUMBER A:$"    ;算法实现:先把两个十进制数转化为十六进制,相加后在转化为十进制
ECH02 DB "INPUT THE NEXT NUMBER B:$"
ECH03 DB "A ADD B EQU:$"
ECH04 DB "TOO BIG!$"
DATA ENDS

CRLF MACRO
	MOV AH,2
	MOV DL,0AH
	INT 21H
	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
	MOV SI,BX
	XOR BX,BX
	XOR AX,AX
	MOV AH,9
	MOV DX,OFFSET ECH02
	INT 21H
	CALL DECBIN
	
	CALL CHGN
	CRLF
	MOV AH,9
	MOV DX,OFFSET ECH03
	INT 21H
	CALL BINHEX
	JMP REPEAT

DECBIN:	MOV BX,0
	MOV BP,10
NEW1:	MOV AH,1       
	INT 21H
	SUB AL,30H
	JB  EXIT
	CMP AL,9
	JA  EXIT
	CBW
	XCHG AX,BX
	MUL BP
	JC  ERROR
	ADD BX,AX
	JC  ERROR
	JMP NEW1
EXIT:   RET
ERROR:  MOV AH,9
        MOV DX,OFFSET ECH04
	INT 21H
	MOV AH,4CH
	INT 21H



CHGN:   MOV AL,0               ;将两个十六进制数相加
	ADD BX,SI
	JC  ERROR
	MOV AX,BX              ;将两数之和的十六进制数转化为十进制
	XOR BX,BX
	MOV CH,4
	MOV CL,4

RETRY:  SHR BX,CL
	MOV DX,0
	DIV BP
	ROR DX,CL
	OR  BX,DX
	DEC CH
	JNZ RETRY
	MOV SI,AX
	
ENCH:   RET                   ;转换结束
	

BINHEX:	MOV CH,4              ;输出结果
	MOV CL,4
	MOV AX,SI
	CMP AL,0
	JG  PRINT
ROTATE: DEC CH
	ROL BX,CL
	MOV DL,BL
	AND DL,0FH
	CMP DL,0
	JG  PRINT
	CMP CH,0
	JNG PRINT
	JMP ROTATE

ROTATE1:DEC CH
	ROL BX,CL
	MOV DL,BL
	AND DL,0FH      
        
PRINT:	ADD DL,30H
	MOV AH,2
	INT 21H
	CMP CH,0
	JG  ROTATE	
RET
CODE ENDS
END START
	
		
	

⌨️ 快捷键说明

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