8085 無重疊塊移動
在這個程式中,我們將瞭解如何將資料塊從一個位置移動到另一個位置。
問題陳述
編寫 8085 組合語言程式以移動資料塊。假設這些塊不重疊。給出塊大小,塊從 X 開始,我們必須將其移動到位置 Y。
討論
無重疊塊移動相對來說是一項簡單的任務。這裡塊從位置 X 開始,我們必須將其移動到位置 Y。位置 Y 遠離 X。所以 Y > X + 塊大小。
在這個程式中,資料儲存在 8010H 位置,我們將將其放置在 9010H。塊大小儲存在 8000H 位置。
我們將源地址載入到 HL 對中,將目標地址載入到 DE 暫存器對中。我們只是從源獲取資料並將其放置在目標位置。
輸入
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8000 | 07 |
| . . . | . . . |
| 8010 | 11 |
| 8011 | 22 |
| 8012 | 33 |
| 8013 | 44 |
| 8014 | 55 |
| 8015 | 66 |
| 8016 | 77 |
| . . . | . . . |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 | |
|---|---|---|---|---|---|
| F000 | 21,00, 80 | LXIH, 8000H | 載入查詢塊大小的位置 | ||
| F003 | 4E | MOVC, M | 將塊大小儲存到 C 暫存器中 | ||
| F004 | 21,10, 80 | LXI H, 8010H | 將源地址載入到 HL 對中 | ||
| F007 | 11,10, 90 | LXI D, 9010H | 將目標地址載入到 DE 對中 | ||
| F00A | 7E | LOOP | MOV A, M | 將累加器載入到記憶體元素中 | |
| F00B | 12 | STAX D | 將累加器內容儲存到 D 指向的記憶體中 | ||
| F00C | 13 | INX D | 增加 DE 暫存器對 | ||
| F00D | 23 | INX H | 增加 HL 暫存器對 | ||
| F00E | 0D | DCR C | 減少 C 暫存器 | ||
| F00F | C2,0A, F0 | JNZ LOOP | 跳轉到迴圈 | ||
| F012 | 76 | HLT | 終止程式 | ||
輸出
| 地址 | 資料 |
|---|---|
| . . . | . . . |
| 8000 | 07 |
| . . . | . . . |
| 8010 | 11 |
| 8011 | 22 |
| 8012 | 33 |
| 8013 | 44 |
| 8014 | 55 |
| 8015 | 66 |
| 8016 | 77 |
| . . . | . . . |
| 9010 | 11 |
| 9011 | 22 |
| 9012 | 33 |
| 9013 | 44 |
| 9014 | 55 |
| 9015 | 66 |
| 9016 | 77 |
| . . . | . . . |
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP