8085程式用於乘以兩個8位數
在本程式中,我們將瞭解如何使用 8085 微處理器乘以兩個 8 位數。
問題陳述
編寫 8085 組合語言程式,將儲存在記憶體位置的兩個 8 位數相乘,並將 16 位結果儲存到記憶體中。
討論
8085 沒有乘法運算。要獲得乘法的結果,我們應該使用重複加法的方法。
兩個 8 位數相乘後,可能會生成 1 位元組或 2 位元組的數字,因此我們使用兩個暫存器來儲存結果。
我們將資料儲存在 8000H 和 8001H 位置。結果儲存在 8050H 和 8051H 位置。
輸入
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8000 | DC |
| 8001 | AC |
| . . . | . . . |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 | |
|---|---|---|---|---|---|
| F000 | 21, 00, 80 | LXI H,8000H | 載入第一個運算元地址 | ||
| F003 | 46 | MOV B, M | 將第一個運算元儲存到 B | ||
| F004 | 23 | INX H | 增加 HL 對 | ||
| F005 | AF | XRA A | 清除累加器 | ||
| F006 | 4F | MOV C, A | 將 00H 儲存在暫存器 C 中 | ||
| F007 | 86 | LOOP | ADD M | 將記憶體元素與累加器相加 | |
| F008 | D2, 0C, F0 | JNC SKIP | 當進位標誌為 0 時,跳過下一個任務 | ||
| F00B | 0C | INR C | 增加 C,當進位為 1 時 | ||
| F00C | 05 | SKIP | DCR B | 減少 B 暫存器 | |
| F00D | C2,07, F0 | JNZ LOOP | 當 Z 標誌不為 1 時跳轉到迴圈 | ||
| F010 | 21,50, 80 | LXI H,8050H | 載入目標地址 | ||
| F013 | 71 | MOV M, C | 將 C 暫存器內容儲存到記憶體中 | ||
| F014 | 23 | INX H | 增加 HL 對 | ||
| F015 | 77 | MOV M, A | 將累加器內容儲存到記憶體中 | ||
| F016 | 76 | HLT | 終止程式 | ||
輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8050 | 93 |
| 8051 | D0 |
| . . . | . . . |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP