8085程式:將位塊從源位置移動到目標位置
問題陳述 − 將從8050H到805FH儲存的16個數據塊移動到從8070H到807FH的目標位置。

地址 | 十六進位制程式碼 | 標籤 | 助記符 | T狀態 | 註釋 |
---|---|---|---|---|---|
8000 | 21 50 80 |
START | LXI H, 8050H | 10 | 將HL暫存器對設定為源記憶體指標。 |
8003 | 11 70 80 |
LXI D, 8070H | 10 | 將DE暫存器對設定為目標記憶體指標 | |
8006 | 06 10 |
MVI B, 10H | 7 | 將B暫存器設定為計數器,計數16個位元組 | |
8008 | 7E | LOOP | MOV A, M | 7 | 從源獲取資料位元組。 |
8009 | 12 | STAX D | 7 | 將資料位元組儲存到目標位置 | |
800A | 23 | INX H | 6 | 將HL指向下一個源位置 | |
800B | 13 | INX D | 6 | 將DE指向下一個目標位置 | |
800C | 05 | DCR B | 4 | 計數器減1 | |
800D | C2 08 80 |
JNZ LOOP | 10 | 如果計數器不為0,則返回傳輸下一個位元組。 | |
8010 | 76 | HLT | 5 | 停止 | |
總共17個位元組 | 總共69個T狀態 |
總T狀態 = T迴圈外 + T迴圈內
T迴圈外 = (10+10+7+5) = 32
T迴圈內 = ((7+7+6+6+4+10) * 16 - 3) = (40 * 16 - 3) = 637
所以總T狀態 = 32 + 637 = 669
主程式從8000H – 8010H位置開始。
源資料塊從8050H – 805FH。
目標塊從8070H – 807FH
輸入 | 輸出 | ||
---|---|---|---|
地址 | 值 | 地址 | 值 |
8050H | 00 | 8070H | 00 |
8051H | 11 | 8071H | 11 |
8052H | 22 | 8072H | 22 |
8053H | 33 | 8073H | 33 |
8054H | 44 | 8074H | 44 |
8055H | 55 | 8075H | 55 |
8056H | 66 | 8076H | 66 |
8057H | 77 | 8077H | 77 |
8058H | 88 | 8078H | 88 |
8059H | 99 | 8079H | 99 |
805AH | AA | 807AH | AA |
805BH | BB | 807BH | BB |
805CH | CC | 807CH | CC |
805DH | DD | 807DH | DD |
805EH | EE | 807EH | EE |
805FH | FF | 807FH | FF |
廣告