8085 微處理器中將 BCD 轉換為 HEX 的程式


在這裡,我們將看到一個 8085 程式,該程式將把 BCD 數轉換為等效的 HEX 數。

問題陳述

一個 BCD 數儲存在地址 802BH 中。將其轉換為二進位制等效值並將其儲存到記憶體地址 802CH 中。

討論

在這個問題中,我們從記憶體中獲取一個 BCD 數並將其轉換為其二進位制等效值。首先,我們將輸入的每個 nibble 切割。因此,如果輸入是 52(0101 0010),那麼我們可以透過將數字與 0FH 和 F0H 進行掩碼來簡單地將其切割。當高位 nibble 被切割時,將其向左旋轉四次以將其傳輸到低位 nibble。

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

輸入

地址
資料


802B
52



流程圖

 

 

 

程式

地址
HEX 程式碼
標籤
助記符
註釋
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
遞減計數器,直到達到 0
8021
C2, 1F, 80


JNZ SUM


8024
81


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


POP B
恢復 B
8026
C9


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

 

輸出

地址
資料


802C
34


更新於: 2019 年 10 月 9 日

787 次檢視

啟動你的 職業生涯

完成課程獲得認證

開始學習
廣告

© . All rights reserved.