KS57C2308/P2308/C2316/P2316 SAM47 INSTRUCTION SET
5-3
Reducing Instruction Redundancy
When redundant instructions such as LD A,#im and LD EA,#imm are used consecutively in a program sequence,
only the first instruction is executed, but the following redundant instructions are ignored, that is, they are handled
like a NOP instruction. When LD HL,#imm instructions are used consecutively, the following redundant
instructions are also ignored.
In the following example, only the “LD A, #im” instruction will be executed. The 8-bit load instruction which
follows it is interpreted as redundant and is ignored:
LD A,#im ; Load 4-bit immediate data (#im) to accumulator
LD EA,#imm ; Load 8-bit immediate data (#imm) to extended accumulator
In this example, the statements “LD A,#2H” and “LD A,#3H” are ignored:
BITR EMB
LD A,#1H ; Execute instruction
LD A,#2H ; Ignore, redundant instruction
LD A,#3H ; Ignore, redundant instruction
LD 23H,A ; Execute instruction, 023H #1H
If consecutive LD HL, #imm instructions (load 8-bit immediate data to the 8-bit memory pointer pair, HL) are
detected, only the first LD is executed and the LDs which immediately follow are ignored. For example,
LD HL,#10H ; HL 10H
LD HL,#20H ; Ignore, redundant instruction
LD A,#3H ; A 3H
LD EA,#35H ; Ignore, redundant instruction
LD @HL,A ; (10H) 3H
If an instruction reference with a REF instruction has a redundancy effect, the following conditions apply:
If the instruction preceding the REF has a redundancy effect, this effect is cancelled and the referenced
instruction is not skipped.
If the instruction following the REF has a redundancy effect, the instruction following the REF is skipped.
+ + PROGRAMMING TIP — Example of the Instruction Redundancy Effect
ORG 0020H
ABC LD EA,#30H ;Stored in REF instruction reference area
ORG 0080H
LD EA,#40H ;Redundancy effect is encountered
REF ABC ;No skip (EA #30H)
REF ABC ;EA #30H
LD EA,#50H ;Skip