Z-80 中無重疊的塊移動
在本節中,我們將瞭解如何使用 Zilog Z-80 微處理器將一段資料塊移動到另一個位置。有一個假設,源地址和目標地址之間有足夠的距離。因此,塊是不重疊的。基本上,塊移動不是精確的移動,而是將資料複製到其他位置。
塊中專案的數量位於 5000H 位置,該塊位於 5050H 位置。
因此,在移動之前,記憶體中的專案如下所示。
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . |
現在,我們正在 8000H 位置編寫一個程式以將塊內容移動到其他位置。
程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| 8000 | 21 00 50 | LD HL, 5000H | 將 HL 對載入為 5000H | |
| 8003 | DD 21 50 50 | LD IX, 5050H | 將索引暫存器設定為 5050H | |
| 8007 | DD 7E 00 | LOOP | LD A, (IX+00H) | 將累加器載入為 IX + 00H |
| 800A | DD 77 20 | LD (IX+20H), A | 將累加器的內容載入到 IX + 20H | |
| 800D | DD 23 | INC IX | 增加索引暫存器 | |
| 800F | 35 | DEC (HL) | 減少由 HL 對指向的記憶體位置的內容 | |
| 8010 | C2 07 80 | JP NZ, LOOP | 當零標誌關閉時跳轉到 Loop | |
| 8013 | 76 | HALT | 停止程式 |
輸出
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . | |
| 5070H | 89H |
| 5071H | 7AH |
| 5072H | 2FH |
| 5073H | 56H |
| . . . |
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP