8085程式:將8位二進位制數轉換為BCD碼


在這個程式中,我們將學習如何將二進位制數轉換為其BCD等效值。

問題陳述

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

討論

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

我們可以使用INR指令來遞增計數器,但是此指令不會影響進位標誌,因此我們使用了ADI 10H。

輸入

地址資料
.
.
.
.
.
.
800034
.
.
.
.
.
.

流程圖

程式

地址十六進位制程式碼標籤助記符註釋
F00021, 00, 80
LXI H,8000H初始化記憶體指標
F00316, 00
MVI D,00H清零D暫存器(用於最高有效位元組)
F005AF
XRA A清零累加器
F0064E
MOV C, M獲取十六進位制資料
F007C6, 01LOOP:ADI 01H逐個計數
F00927
DAA調整BCD計數
F00AD2, 0E, F0
JNC SKIP跳轉到SKIP
F00D14
INR D遞增D
F00E0DSKIP:DCR C遞減C暫存器
F00FC2, 07, F0
JNZ LOOP跳轉到LOOP
F0126F
MOV L, A載入最低有效位元組
F01362
MOV H, D載入最高有效位元組
F01422, 50, 80
SHLD 8050H儲存BCD碼
F01776
HLT終止程式


輸出

地址資料
.
.
.
.
.
.
805052
.
.
.
.
.
.

更新於:2019年7月30日

10K+ 瀏覽量

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告