Z-80寻址方式
这里我们将了解 Zilog Z-80 微处理器的寻址方式。但首先我们将讨论 Z-80 的助记符。
众所周知,Intel 8085 和 Zilog Z-80 之间有很多相似之处,因此我们也可以在指令上找到相似之处。但在 Z-80 中,助记符略有不同。十六进制代码相同,只有助记符不同。因此,如果我们想执行一个用 8085 MPU 编写的程序,它将正常工作。但是 Z-80 还有许多其他指令,这些指令在 8085 中不可用。
以下是 8085 和 Z-80 的助记符列表,其中十六进制代码相同。
8085 助记符 | Z-80 助记符 |
---|---|
ADI/ACI d8 | ADD/ADC A, d8 |
ADD/ADC M | ADD/ADC A, (HL) |
ADD/ADC r | ADD/ADC A, r |
DAD B/D/H/SP | ADD HL,BC/DE/HL/SP |
SUI d8 | SUB d8 |
SUB M | SUB (HL) |
SBI d8 | SBC A, d8 |
SBB M | SBC A, (HL) |
SBB r | SBC A, r |
CNC/CC/CZ/CNZ/CP/CM/CPO/CPE a16 | CALL C/NC/Z/NZ/P/M/PO/PE a16 |
RNC/RC/RZ/RNZ/RP/RM/RPO/RPE | RET C/NC/Z/NZ/P/M/PO/PE |
JMP a16 | JP a16 |
JNC/JC/JZ/JNZ/JP/JM/JPO/JPE a16 | JP C/NC/Z/NZ/P/M/PO/PE a16 |
PCHL | JP (HL) |
RST 0/1/2/3/4/5/6/7 | RST 0/8/10H/18H/20H/28H/30H/38H |
INR/DCR r/M | INC/DEC r/(HL) |
INX/DCX B/D/H/SP | INC/DEC BC/DE/HL/SP |
CMC/STC | CCF/SCF |
CMP r/M | CP r/(HL) |
CPI d8 | CP d8 |
CMA | CPL |
XCHG | EX DE,HL |
XTHL | EX (SP), HL |
HLT | HALT |
IN a8 | IN A, (a8) |
OUT a8 | OUT (a8), A |
LDA a16 | LD A, (a16) |
STA a16 | LD (a16), A |
LDAX B/D | LD A, (BC)/(DE) |
STAX B/D | LD (BC)/(DE), A |
LHLD a16 | LD HL, (a16) |
SHLD a16 | LD (a16), HL |
MOV r1, r2 | LD r1, r2 |
MOV M, r | LD (HL), r |
MVI r/M, d8 | LD r/(HL), d8 |
LXI B/D/H/SP, d16 | LD BC/DE/HL/SP, d16 |
SPHL | LD SP, HL |
PUSH/POP B/D/H/PSW | PUSH/POP BC/DE/HL/AF |
RAL/RLC/RAR/RRC | RLA/RLCA/RRA/RRCA |
现在,我们将了解 Z-80 微处理器的寻址方式。
立即寻址方式
在这种模式下,操作码后面的字节是实际的操作数。因此,当我们将某些内容直接存储到某个寄存器中时,这将是立即寻址模式的一个示例。
扩展立即寻址方式
它与立即寻址模式相同;唯一的区别是它在操作码之后采用 16 位数据作为输入。要将某些数据存储到某个寄存器对中,我们将使用这种寻址模式。
修改后的页面零寻址方式
在这个微处理器中,对于内存页面零中的八个位置中的任何一个,都有一个 1 字节的 CALL 指令。它就像重启操作。它将程序计数器设置为页面零中的有效地址。
相对寻址方式
在这种模式下,提供 1 字节数据来确定程序跳转到的现有程序的偏移量。偏移量是有符号的 2 的补码。
扩展寻址方式
在这种模式下,可以在操作码之后使用 2 字节数据。这些字节可以是跳转指令的地址,也可以是存储数据的地址。
索引寻址方式
在这种模式下,操作码后面的字节包含偏移量,该偏移量将添加到两个索引寄存器之一(由指令指定的 IX 或 IY)以生成指向内存的指针。这里偏移量也是有符号的 2 的补码。
寄存器寻址方式
一些指令直接使用 CPU 寄存器进行操作。然后使用寄存器寻址模式。例如,如果要将寄存器 B 的内容加载到寄存器 C 中,则必须使用属于此模式的指令。
隐含寻址方式
隐含寻址模式指的是操作码自动选择一个或多个 CPU 寄存器来执行某些操作的操作。例如,对于算术或逻辑运算,操作码选择累加器(寄存器 A)作为结果的目标。
寄存器间接寻址方式
当指令使用 16 位寄存器对时,该寄存器对保存内存中某些值的地址,那么这种指令就属于寄存器间接寻址模式。
例如,在不同情况下,我们使用 HL 对来保存一些地址,当我们想要更新 HL 对存储的地址中所处的数据时,我们使用寄存器间接模式。
位寻址方式
在 Z-80 MPU 中,有一些位设置、复位、测试指令。使用此模式,它可以通过**寄存器、寄存器间接**或**索引**寻址模式为位操作选择任何内存位置或 CPU 寄存器。