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

📄 decimaltobinary.asm

📁 将输入的十进制数转换为二进制数
💻 ASM
字号:
;输入宏定义
INPUT MACRO destination
	PUSH DX
	PUSH AX
	MOV AH,0AH
	LEA DX,destination
	INT 21H
	POP AX
	POP DX
	ENDM

;输出宏定义
PRINT MACRO source
	PUSH DX
	PUSH AX
	MOV AH,9
	LEA DX,source
	INT 21H
	POP AX
	POP DX
	ENDM
	
;将字符串转换为十进制数
STRING_TO_DECIMAL MACRO string,strLength,decimal
	LOCAL CYCLE
	PUSH AX
	PUSH BX
	PUSH CX
	PUSH DX
	PUSH SI
	PUSH DI
	PUSH BP
	
	XOR BP,BP
	XOR BH,BH
	MOV SI,strLength
	INC SI
	MOV DI,10
	MOV CX,SI
	SUB CX,2
	XOR DH,DH
	MOV DL,string[SI]
	DEC SI
CYCLE:
	MOV BL,string[SI]
	AND BL,0FHU
	XOR BH,BH
	MOV AX,BX
	MUL DI
	ADD BP,AX
	MOV AX,DI
	MOV DI,10
	MUL DI
	MOV DI,AX
	DEC SI
	DEC CX
	LOOP CYCLE
	
	MOV decimal,BP	
	
	POP BP
	POP DI
	POP SI
	POP DX
	POP CX
	POP BX
	POP AX
	ENDM
	
;将十进制数年转换为字符串并输出
DECIMAL_TO_STRING MACRO decimal
	LOCAL L1,L2,L3
	PUSH AX
	PUSH BX
	PUSH CX
	PUSH DX
	
	MOV AX,decimal
	MOV CX,10
	XOR BX
L1:
	CMP AX,0
	JE L2
	XOR DX,DX
	DIV CX
	OR DL,30H
	PUSH DX
	INC BX
	JMP SHORT L1
L2:
	MOV CX,BX
L3:
	POP AX
	MOV AH,2
	INT 21H
	LOOP L3
		
	POP DX
	POP CX
	POP BX
	POP AX
ENDM




DATAS SEGMENT
    I_NUMBER DW ?
    I_TEST DW ?
    BUFFER DB 8,?,8 DUP(?)
    
    C_BNUMBER DB 20 DUP(?)
    C_OUT DB 'THE BINARY NUMBER IS:','$'
    C_START DB 'PLEASE INPUT THE DECIMAL NUMBER:','$'
    
     
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
MAIN PROC FAR
    MOV AX,DATAS
    MOV DS,AX
    
    ;输出提示语言
    PRINT C_START
    
    ;输入数据
    INPUT BUFFER
    
    STRING_TO_DECIMAL BUFFER,BUFFER,I_NUMBER
    MOV I_TEST,235
    ;DECIMAL_TO_STRING I_TEST
    
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
MAIN ENDP    
CODES ENDS
	END MAIN

⌨️ 快捷键说明

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