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 |
| … | … |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP