8085程式:將BCD轉換為HEX


在本程式中,我們將瞭解如何將BCD數轉換為其二進位制等價物。

問題陳述

BCD數儲存在地址802BH。將其轉換為二進位制等價物,並將其儲存到記憶體地址802CH。

討論

在這個問題中,我們從記憶體中獲取一個BCD數並將其轉換為其二進位制等價物。首先,我們擷取輸入的每個半位元組。因此,如果輸入是52(0101 0010),那麼我們可以透過將該數與0FH和F0H進行掩碼來簡單地擷取它。當擷取高位半位元組時,將其左移四位以將其傳輸到低位半位元組。

現在,只需使用十進位制調整方法乘以數字即可得到最終的十進位制結果。

輸入

地址
資料
.
.
.
.
.
.
802B
52
.
.
.
.
.
.


流程圖

程式

地址
十六進位制程式碼
標籤
助記符
註釋
8000
31, FF, 80

LXI SP,80FFH
初始化堆疊指標
8003
21, 2B, 80

LXI H, 802BH
指向輸入緩衝區的指標
8006
01, 2C, 80

LXI B, 802CH
指向輸出緩衝區的指標
8009
7E

MOV A, M
將802BH的內容移到A
800A
CD, 0F, 80

CALL BCDBIN
將BCD數轉換為HEX的子程式
800D
02

STAX B
將累加器儲存到BC指向的記憶體位置
800E
76

HLT
終止程式
800F
C5
BCDBIN
PUSH B
儲存B
8010
47

MOV B, A
將A複製到B
8011
E6, 0F

ANI 0FH
最高四位掩碼
8013
4F

MOV C, A
將A複製到C
8014
78

MOV A, B
將B複製到A
8015
E6, F0

ANI F0H
最低四位掩碼
8017
0F

RRC
累加器右移4次
8018
0F

RRC

8019
0F

RRC

801A
0F

RRC

801B
57

MOV D, A
將計數值載入到暫存器D
801C
AF

XRA A
清除累加器的內容
801D
1E, 0A

MVI E, 0AH
用0AH初始化暫存器E
801F
83
SUM
ADD E
將暫存器E的內容加到A
8020
15

DCR D
將計數減1,直到達到0
8021
C2, 1F, 80

JNZ SUM

8024
81

ADD C
將暫存器C的內容加到A
8025
C1

POP B
恢復B
8026
C9

RET
將控制權返回給呼叫程式


輸出

地址
資料
.
.
.
.
.
.
802C
34
.
.
.
.
.
.

更新於: 2019年7月30日

3K+ 瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.