- •Table of Contents
- •List of Figures
- •List of Tables
- •Manual Objectives
- •About This Manual
- •Intended Audience
- •Manual Organization
- •Related Documents
- •Manual Conventions
- •Safeguards
- •Trademarks
- •Introduction
- •Architectural Overview
- •Processor Description
- •Pipeline Description
- •Memory Modes
- •Z80 MEMORY Mode
- •ADL MEMORY Mode
- •Registers and Bit Flags
- •eZ80® CPU Working Registers
- •eZ80® CPU Control Register Definitions
- •eZ80® CPU Control Bits
- •eZ80® CPU Registers in Z80 Mode
- •eZ80® CPU Registers in ADL Mode
- •eZ80® CPU Status Indicators (Flag Register)
- •Memory Mode Switching
- •ADL Mode and Z80 Mode
- •Memory Mode Compiler Directives
- •Op Code Suffixes for Memory Mode Control
- •Single-Instruction Memory Mode Changes
- •Suffix Completion by the Assembler
- •Assembly of the Op Code Suffixes
- •Persistent Memory Mode Changes in ADL and Z80 Modes
- •Mixed-Memory Mode Applications
- •MIXED MEMORY Mode Guidelines
- •Interrupts
- •Interrupt Enable Flags (IEF1 and IEF2)
- •Interrupts in Mixed Memory Mode Applications
- •eZ80® CPU Response to a Nonmaskable Interrupt
- •eZ80® CPU Response to a Maskable Interrupt
- •Vectored Interrupts for On-Chip Peripherals
- •Illegal Instruction Traps
- •I/O Space
- •Addressing Modes
- •CPU Instruction Set
- •eZ80® CPU Instruction Notations
- •eZ80® CPU Instruction Classes
- •Instruction Summary
- •eZ80® CPU Instruction Set Description
- •CALL cc, Mmn
- •CALL Mmn
- •CPDR
- •CPIR
- •DJNZ d
- •HALT
- •INDM
- •INDMR
- •INDR
- •INDRX
- •INIM
- •INIMR
- •INIR
- •INIRX
- •LDDR
- •LDIR
- •OTDM
- •OTDMR
- •OTDR
- •OTDRX
- •OTIM
- •OTIMR
- •OTIR
- •OTIRX
- •OUTD
- •OUTD2
- •OUTI
- •OUTI2
- •PUSH AF
- •PUSH IX/Y
- •PUSH rr
- •RETI
- •RETN
- •RLCA
- •RRCA
- •RSMIX
- •STMIX
- •TSTIO n
- •Op Code Maps
- •Glossary
- •Index
- •Customer Feedback Form
eZ80® CPU User Manual
204
INDR
Input from I/O and Decrement with Repeat
Operation
repeat {
(HL) ← ({UU, BC[15:0]}) B ← B–1
HL ← HL–1 } while B ≠ 0
Description
The CPU places the contents of BC[15:0] onto the lower two bytes of the address bus, ADDR[15:0]. The upper byte of the address bus, ADDR[23:16] is undefined for I/O addresses. The CPU reads the byte located at I/O address {UU, BC[15:0]} into CPU memory. The CPU next places the contents of HL onto the address bus and writes the byte to the memory address specified by the HL register. Next, the CPU decrements the B and HL registers, and sets the Z Flag to 1 if the B register is decremented to 0. The instruction repeats until the B register equals 0.
Condition Bits Affected
S Not affected.
Z Set of B–1=0; reset otherwise.
H Not affected.
P/V Not affected.
N Set if msb of data is a logical 1; reset otherwise.
C Not affected.
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |
eZ80® CPU User Manual
205
Attributes
Mnemonic |
Operand |
ADL Mode |
Cycle |
Op Code (hex) |
|
INDR |
— |
X |
2 + 3 * B |
ED, BA |
|
|
|
|
|
|
|
INDR.S |
— |
1 |
3 + 3 * B |
52, |
ED, BA |
|
|
|
|
|
|
INDR.L |
— |
0 |
3 + 3 * B |
49, |
ED, BA |
|
|
|
|
|
|
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |
eZ80® CPU User Manual
206
INDRX
Input from I/O and Decrement Memory Address with Stationary I/O Address
Operation
repeat {
(HL) ← ({UU, DE[15:0]}) BC ← BC–1
HL ← HL–1 } while BC ≠ 0
Description
The CPU places the contents of register DE onto the lower byte of the address bus, ADDR[15:0]. The upper byte of the address bus, ADDR[23:16], is undefined for I/O addresses. The CPU reads the byte at this I/O address, {UU, DE[15:0]}, into CPU memory. The CPU next places the contents of HL onto the address bus and writes the byte to the memory address specified by the HL register. The BC and HL registers decrement. Next, the CPU sets the Z Flag to 1 if the BC register decrements to 0. The instruction repeats until the BC register equals 0.
Condition Bits Affected
S Not affected.
Z Set of BC–1=0; reset otherwise.
H Not affected.
P/V Not affected.
N Set if Bit 7 of data = 1; reset otherwise.
C Not affected.
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |
eZ80® CPU User Manual
207
Attributes
Mnemonic |
Operand |
ADL Mode |
Cycle |
Op Code (hex) |
|||
INDRX |
— |
X |
2 |
+ 3 |
* BC ED, CA |
||
|
|
|
|
|
|
|
|
INDRX.S |
— |
1 |
3 |
+ 3 |
* BC 52, |
ED, CA |
|
|
|
|
|
|
|
|
|
INDRX.L |
— |
0 |
3 |
+ 3 |
* BC 49, |
ED, CA |
|
|
|
|
|
|
|
|
|
Note
This instruction is not supported on the eZ80190 device.
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |
eZ80® CPU User Manual
208
INI
Input from I/O and Increment
Operation
(HL) ← ({UU, BC[15:0]}) B ← B–1
HL ← HL+1
Description
The CPU places the contents of BC[15:0] onto the lower two bytes of the address bus, ADDR[15:0]. The upper byte of the address bus, ADDR[23:16] is undefined for I/O addresses. The CPU reads the byte located at I/O address {UU, BC[15:0]} into CPU memory. The CPU next places the contents of HL onto the address bus and writes the byte to the memory address specified by the HL register. The B register decrements and the HL register increments. Next, the CPU sets the Z Flag to 1 if the B register decrements to 0.
Condition Bits Affected
S Not affected.
Z Set if B–1=0; reset otherwise.
H Not affected.
P/V Not affected.
N Set if msb of data is a logical 1; reset otherwise.
C Not affected.
Attributes
Mnemonic |
Operand |
ADL Mode |
Cycle |
Op Code (hex) |
|
INI |
— |
X |
5 |
ED, A2 |
|
|
|
|
|
|
|
INI.S |
— |
1 |
6 |
52, |
ED, A2 |
|
|
|
|
|
|
INI.L |
— |
0 |
6 |
49, |
ED, A2 |
|
|
|
|
|
|
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |
eZ80® CPU User Manual
209
INI2
Input from I/O and Increment
Operation
(HL) ← ({UU, BC[15:0})
B← B–1
C← C+1 HL ← HL+1
Description
The CPU places the contents of BC[15:0] onto the lower two bytes of the address bus, ADDR[15:0]. The upper byte of the address bus, ADDR[23:16] is undefined for I/O addresses. The CPU reads the byte located at this I/O address into CPU memory. The CPU next places the contents of HL onto the address bus and writes the byte to the memory address specified by the HL register. The B register decrements. The C and HL registers increment. Next, the CPU sets the Z Flag to 1 if the B register decrements to 0.
Condition Bits Affected
S Not affected.
Z Set if B–1=0; reset otherwise.
H Not affected.
P/V Not affected.
N Set if msb of data is a logical 1; reset otherwise.
C Not affected.
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |
eZ80® CPU User Manual
210
Attributes
Mnemonic |
Operand |
ADL Mode |
Cycle |
Op Code (hex) |
|
INI2 |
— |
— |
5 |
ED, 84 |
|
|
|
|
|
|
|
INI2.S |
— |
— |
6 |
52, |
ED, 84 |
|
|
|
|
|
|
INI2.L |
— |
— |
6 |
49, |
ED, 84 |
|
|
|
|
|
|
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |
eZ80® CPU User Manual
211
INI2R
Input from I/O and Increment with Repeat
Operation
repeat {
(HL) ← ({UU, DE[15:0]}) BC ← BC–1
DE ← DE+1
HL ← HL+1 } while BC ≠ 0
Description
The CPU places the contents of DE[15:0] onto the lower two bytes of the address bus, ADDR[15:0], and places a 0 onto the upper byte of the address bus, ADDR[23:16]. The CPU reads the byte at this I/O address into CPU memory. The CPU next places the contents of HL onto the address bus and writes the byte to the memory address specified by the HL register. The BC register decrements. The DE and HL registers increment. Next, the CPU sets the Z Flag to 1 if the BC register decrements to 0. The instruction repeats until the BC register equals 0.
Condition Bits Affected
S Not affected.
Z Set if BC–1=0; reset otherwise.
H Not affected.
P/V Not affected.
N Set if msb of data is a logical 1; reset otherwise.
C Not affected.
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |
eZ80® CPU User Manual
212
Attributes
Mnemonic |
Operand |
ADL Mode |
Cycle |
Op Code (hex) |
|||
INI2R |
— |
X |
2 |
+ 3 |
* BC ED, 94 |
||
|
|
|
|
|
|
|
|
INI2R.S |
— |
1 |
3 |
+ 3 |
* BC 52, |
ED, 94 |
|
|
|
|
|
|
|
|
|
INI2R.L |
— |
0 |
3 |
+ 3 |
* BC 49, |
ED, 94 |
|
|
|
|
|
|
|
|
|
Note
This instruction operates differently in the eZ80190 device. In the eZ80190, operation is:
repeat {
(HL) ← ({UU, BC[15:0]})
B← B–1
C← C+1 HL ← HL+1
}while B ≠ 0
UM007712-0503 |
PRELIMINARY |
CPU Instruction Set |