8085程式交換記憶體中的一塊位元組
在這個程式中,我們將瞭解如何使用8085交換一塊位元組。
問題陳述
編寫8085組合語言程式來交換一塊資料,其中塊大小已知。
討論
資料儲存在地址8010H到8019H和9010H到9019H。地址8000H儲存要交換的位元組數。
邏輯非常簡單,HL和DE暫存器對分別指向第一塊和第二塊資料。透過獲取資料,我們只是交換每個記憶體位置的值。然後重複此過程以完全交換兩塊資料。
輸入
| 地址 | 資料 |
|---|---|
| ... | ... |
| 8000 | 06 |
| ... | ... |
| 8010 | 00 |
| 8011 | 11 |
| 8012 | 22 |
| 8013 | 33 |
| 8014 | 44 |
| 8015 | 55 |
| ... | ... |
| 9010 | 84 |
| 9011 | 63 |
| 9012 | 12 |
| 9013 | 47 |
| 9014 | 48 |
| 9015 | AD |
| ... | ... |
流程圖

程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| F000 | 21, 10, 80 | LXI H, 8000H | 指向8000H獲取位元組計數 | |
| F003 | 4E | MOV C,M | 從記憶體載入計數 | |
| F004 | 21, 10, 80 | LXI H,8010H | 指向第一塊地址 | |
| F007 | 11, 10, 90 | LXI D,9010H | 指向第二塊地址 | |
| F00A | 46 | LOOP | MOV B, M | 將第一塊的元素取到B |
| F00B | 1A | LDAX D | 將第二塊的元素取到累加器 | |
| F00C | 77 | MOV M, A | 將累加器內容儲存到第二塊 | |
| F00D | 78 | MOV A, B | 將B載入到A | |
| F00E | 12 | STAX D | 儲存到第二塊 | |
| F00F | 23 | INX H | 指向第一塊的下一個地址 | |
| F010 | 13 | INX D | 指向第二塊的下一個地址 | |
| F011 | 0D | DCR C | 減少計數變數 | |
| F012 | C2, 0A, F0 | JNZ LOOP | 當塊未完成時,跳轉到LOOP | |
| F015 | 76 | HLT | 終止程式 |
輸出
| 地址 | 資料 |
|---|---|
| ... | ... |
| 8010 | 84 |
| 8011 | 63 |
| 8012 | 12 |
| 8013 | 47 |
| 8014 | 48 |
| 8015 | AD |
| ... | ... |
| 9010 | 00 |
| 9011 | 11 |
| 9012 | 22 |
| 9013 | 33 |
| 9014 | 44 |
| 9015 | 55 |
| ... | ... |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP