Z-80中多位元組數的加法
在本節中,我們將學習如何使用Zilog Z-80微處理器來進行多位元組數的加法。
在這個例子中,我們使用4位元組數 (56 2F 7A 89)16 和 (21 FB A9 AF)16
在記憶體中,首先,我們將位元組計數儲存,然後將數字(從最低有效位元組到最高有效位元組)儲存在不同的段中。因此,儲存資料後,記憶體結構將如下所示:
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . | |
| 5070H | AFH |
| 5071H | A9H |
| 5072H | FBH |
| 5073H | 21H |
| . . . |
現在,我們正在8000H位置編寫一個程式來新增這兩個4位元組數,並將結果儲存在5090H及以後的位置。
程式
| 地址 | 十六進位制程式碼 | 標籤 | 助記符 | 註釋 |
|---|---|---|---|---|
| 8000 | 37 | SCF | 設定進位標誌 | |
| 8001 | 3F | CCF | 反轉進位標誌 | |
| 8002 | 21 00 50 | LD HL, 5000H | 將5000h載入到HL暫存器對 | |
| 8005 | DD 21 50 50 | LD IX, 5050H | 將5050H載入到IX索引暫存器 | |
| 8009 | DD 7E 00 | LOOP: | LD A, (IX+0H) | 將IX+00H的內容載入到累加器A |
| 800C | DD 8E 20 | ADC A, (IX+20H) | 將IX+20H的內容與累加器A和進位標誌相加 | |
| 800F | DD 77 40 | LD (IX+40H), A | 將累加器A的內容儲存到IX+40H | |
| 8012 | DD 23 | INC IX | IX暫存器加1 | |
| 8014 | 35 | DEC (HL) | HL暫存器對指向的記憶體單元減1 | |
| 8015 | C2 09 80 | JP NZ, LOOP | 如果零標誌為0,跳轉到LOOP | |
| 8018 | D2 20 80 | JP NC, DONE | 如果進位標誌為0,跳轉到DONE | |
| 801B | DD 36 40 01 | LD (IX+40H), 01 | 將01H儲存到IX+40H | |
| 801F | 76 | HALT | 程式停止 | |
| 8020 | DD 36 40 00 | DONE: | LD (IX+40H), 00 | 將00H儲存到IX+40H |
| 8024 | 76 | HALT | 程式停止 |
輸出
| 地址 | 值 |
|---|---|
| 5000H | 04H |
| . . . | |
| 5050H | 89H |
| 5051H | 7AH |
| 5052H | 2FH |
| 5053H | 56H |
| . . . | |
| 5070H | AFH |
| 5071H | A9H |
| 5072H | FBH |
| 5073H | 21H |
| . . . | |
| 5090H | 38H |
| 5091H | 24H |
| 5092H | 2BH |
| 5093H | 78H |
| 5094H | 00H |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP