Z-80 中的塊交換
在本節中,我們將瞭解如何使用 Zilog Z-80 微處理器交換兩個不同塊中每個元素的內容。
每個塊中的專案數量在 5000H 位置給出,塊位於 5050H 和 5070H 位置。
因此,在交換記憶體中的專案之前,看起來像這樣
地址 | 值 |
---|---|
5000H | 04H |
. . . | |
5050H | 89H |
5051H | 7AH |
5052H | 2FH |
5053H | 56H |
. . . | |
5070H | AFH |
5071H | A9H |
5072H | FBH |
5073H | 21H |
. . . |
現在,我們正在 8000H 位置編寫一個程式來交換塊內容。
程式
地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
---|---|---|---|---|
8000 | 21 00 50 | LD HL, 5000H | 將 HL 對載入為 5000H | |
8003 | DD 21 50 50 | LD IX, 5050H | 將索引暫存器設定為 5050H | |
8007 | DD 7E 00 | LD A, (IX+00H) | 將累加器載入為 IX + 00H | |
800A | DD 46 20 | LD B, (IX+20H) | 將 B 載入為 IX + 20H | |
800D | DD 70 00 | LOOP | LD (IX+00H), B | 將 B 暫存器內容載入到 IX + 00H |
8010 | DD 77 20 | LD (IX+20H), A | 將累加器內容載入到 IX + 20H | |
8013 | DD 23 | INC IX | 增加 IX 暫存器 | |
8015 | 35 | DEC (HL) | 減少記憶體內容,由 HL 對指向的指標 | |
8016 | C2 07 80 | JP NZ, LOOP | 當零標誌關閉時,跳轉到迴圈 | |
8019 | 76 | HALT | 停止程式 |
輸出
地址 | 值 |
---|---|
5000H | 04H |
. . . | |
5050H | AFH |
5051H | A9H |
5052H | FBH |
5053H | 21H |
. . . | |
5070H | 89H |
5071H | 7AH |
5072H | 2FH |
5073H | 56H |
. . . |
廣告