用汇编语言将BCD码转化为十六进制数

2024-11-27 14:47:46
推荐回答(3个)
回答1:

Hex2Bcd:
CLR A
MOV BCDDATA,A ;正负号初始化
MOV A,R6
JNB ACC.7,H2B
MOV BCDDATA,#0AH ;建负号标志
CPL A
MOV R6,A
MOV A,R7
CPL A
INC A
MOV R7,A
JNZ H2B
INC R6
H2B: MOV R4,#0AH
MOV B,R4
MOV A,R6
DIV AB
MOV R6,A
MOV A,R7
ANL A,#0F0H
ORL A,B
SWAP A
MOV B,R4
DIV AB
MOV R2,A
MOV A,R7
SWAP A
ANL A,#0F0H
ORL A,B
SWAP A
MOV B,R4
DIV AB
MOV BcdData+3,B ;得到个位
SWAP A
ORL A,R2
SWAP A
MOV R7,A ;第一次除法完成
ANL A,#0F0H
ORL A,R6
SWAP A
MOV B,#0AH
DIV AB
SWAP A
MOV R1,A ;存入高位商

MOV A,R7
ANL A,#0FH
SWAP A
ORL A,B
SWAP A
MOV B,R4
DIV AB ;第二次除法完成
MOV BcdData+2,B ;保存BCD十位
ORL A,R1
MOV B,R4
DIV AB
MOV BcdData+1,B ;保存百位
JZ Hex2BcdRet
MOV BcdData+0,A ;保存千位

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Hex2BcdRet:
RET
END

回答2:

以下为单字节16进制转BCD码。
MOV B,#64h
DIV AB
MOV R7,A
MOV A ,#0Ah
XCH A ,B
DIV AB
SWAP A
ORL A,B
RET

回答3:

可以去 咨询一下老师!!!