8085微處理器中將十六進位制轉換為BCD的程式


這裡我們將看到一個8085程式,它將把二進位制數(十六進位制)轉換為其BCD等效值。

問題陳述

一個二進位制數儲存在800H位置。將其轉換為BCD等效值並將其儲存到記憶體位置8050H。

討論

這裡我們從記憶體中獲取一個數字,並將其初始化為計數器。現在在這個計數器的每個步驟中,我們將數字加1,並調整十進位制值。透過這個過程,我們找到了二進位制數或十六進位制數的BCD值。

在這種情況下,我們可以使用INR指令來增加計數器,但是這個指令不會影響進位標誌,所以我們使用了ADI 10H

輸入

地址
資料


8000
34


 

流程圖

 

程式

地址
十六進位制程式碼
標籤
助記符
註釋
F000
21, 00, 80


LXI H,8000H
初始化記憶體指標
F003
16, 00


MVI D,00H
清除D暫存器(最高有效位元組)
F005
AF


XRA A
清除累加器
F006
4E


MOV C,M
獲取十六進位制資料
F007
C6, 01
LOOP:
ADI 01H
逐個計數
F009
27


DAA
調整BCD計數
F00A
D2, 0E, F0


JNC SKIP
跳轉到SKIP
F00D
14


INR D
增加D
F00E
0D
SKIP:
DCR C
減少C暫存器
F00F
C2, 07, F0


JNZ LOOP
跳轉到LOOP
F012
6F


MOV L,A
載入最低有效位元組
F013
62


MOV H,D
載入最高有效位元組
F014
22, 50, 80


SHLD 8050H
儲存BCD
F017
76


HLT
終止程式

 

輸出

地址
資料


8050
52


更新於:2019年10月9日

1K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.