📄 b_bcd1.asm
字号:
;二进制转换成BCD码
DATA SEGMENT
BINARY DW 0FFFFH ;此处输入数据段代码
TSTR DB 'THis ia a Binary-BCD convertion program',0AH,0DH,0AH,'$'
BUFFER DB '00000$'
DATA ENDS
;
STACKS SEGMENT
DB 100 DUP(?);此处输入堆栈段代码
STACKS ENDS
;---------------------------------
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACKS
START PROC
MOV AX,DATA
MOV DS,AX
;此处输入代码段代码
LEA DX, TSTR
MOV AH,09
INT 21H
MOV BX, BINARY
CALL B_BCD
MOV BX, OFFSET BUFFER
MOV CX ,05
LAB: MOV AL,[BX] ;非压缩BCD码转换 ASCII
ADD AL,30H
MOV [BX],AL
INC BX
LOOP LAB
MOV DX, OFFSET BUFFER ;显示转换的十进制结果
MOV AH,09
INT 21H
MOV AH,07H
INT 21H
MOV AH,4CH
INT 21H
START ENDP
;16位二进制数转换为BCD码子程序
B_BCD PROC
MOV DI, OFFSET BUFFER
MOV DL,0 ;
T1: SUB BX,10000
JC N1;
INC DL
JMP T1
N1: ADD BX, 10000
MOV [DI],DL
INC DI
MOV DL ,0
T2: SUB BX,1000
JC N2;
INC DL
JMP T2
N2: ADD BX,1000
MOV [DI],DL
INC DI
MOV DL,0
T3: SUB BX,100
JC N3
INC DL
JMP T3
N3: ADD BX, 100
MOV [DI],DL
INC DI
MOV DL,0
T4: SUB BX,10
JC N4
INC DL
JMP T4
N4: ADD BX, 10
MOV [DI],DL
INC DI
MOV [DI] ,BL
RET
B_BCD ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -