使用指令累加實現計時,程式中連續出現相同指令時,如何處理比較好?
程式中連續出現相同指令處理:
1. 當程式中連續出現2 個的NOP 指令時,使用一條JMP $+1 指令代替兩條NOP 指令能够節省1
個ROM 空間(其中“$”代表當前位址)。
2. 如果程式中連續出現多條相同的指令,則可以使用“REPEAT”宏:
下面使用該宏後産生的LIST 檔片段:
行號 | Rom 位址 | 指令編碼 | 源代碼 | 注釋 | ||
71 | 00002B | REPEAT | 8 | |||
72 | 00002B | JMP | $+1 | |||
73 | 00002B | ENDM | ||||
74 | 00002B | 802C(2) | JMP | $+1 | ||
75 | 00002C | 802D(2) | JMP | $+1 | ||
76 | 00002D | 802E(2) | JMP | $+1 | ||
77 | 00002E | 802F(2) | JMP | $+1 | ||
78 | 00002F | 8030(2) | JMP | $+1 | ||
79 | 000030 | 8031(2) | JMP | $+1 | ||
80 | 000031 | 8032(2) | JMP | $+1 | ||
81 | 000032 | 8033(2) | JMP | $+1 |
常數“8”代表重複的次數,重複的內容是REPEAT 和ENDM 之間的指令。