Objetivos
Clique sobre os objetivos listados abaixo para navegar até o conteúdo desejado.
Os modos de endereçamento são o meio pelo qual o Z80 busca ou recupera os operandos como
registradores, flags ou valores em memória utilizados para executar suas instruções.
O Z80 possui os modos de endereçamento: Bit, Implicit, Immediate, Immediate Extended, Extended,
Register e Register Indirect. Esses modos de enderaçamento bem como seus funcionamentos
serão vistos logo abaixo.
Notação:
|
|
| (): |
conteúdo de memória |
| # |
valor imediato |
| AD |
endereço interno |
| d |
valor sinalizado de 8-bits |
| h |
valor hexadecimal |
| HH |
byte mais alto |
| LL |
byte mais baixo |
| mnemônico |
sigla da instrução |
| p |
registrador par BC, DE ou HL |
| PC |
Contador de programa |
| r, r’ |
registradores de uso geral |
No modo Bit, um bit de um registrador ou valor em memória é usado como operando da instrução.
Esse modo é usado nas instruções de manipulação de bit SET, RES e BIT Test. Essas modo
pode ter de 2 a quatro 4 bytes de tamanho.
| PC |
+ 1 |
+ 2 |
+ 3 |
| Byte 0 |
Byte 1 |
Byte 2 |
Byte 3 |
| PP |
CB |
d |
opcode |
| PC |
+ 1 |
| Byte 0 |
Byte 1 |
| CB |
opcode |
Operação:
reset/set
RAM[num_bit] <- 0|1
r[num_bit] <- 0|1
test
RAM[num_bit] = 0|1
r[num_bit] = 0|1
Sintaxe:
mnemônico num_bit, r
mnemônico num_bit, (p)
mnemônico num_bit, (IX+d)
mnemônico num_bit, (IY+d)
Onde:
PP: DD,FD
SS: CB
r: registradores de uso geral
mum_bit: 0-7
d: valor 8-bits sinalizado
Ex:
bit 7,a
O modo implícito informa que uma instruções contém as informações sobre o(s) operando(s)
utilizado(s). Usado em instruções como RST e flag.
Operação:
-
Sintaxe:
mnemônico
Ex:
ccf
No modo imediato, um valor de 8-bits imediato que faz parte da instrução é usado como operando.
Esse modo de endereçamento é usado em instruções de carga/load, por exemplo.
| PC |
+ 1 |
| Byte 0 |
Byte 1 |
| opcode |
NN |
Operação:
r <- #NN
Sintaxe:
mnemônico r, #$NN
Onde:
-
Ex:
ld a,#$ff
Immediate extended - Imediato Estendido
No modo indireto, um valor contido no registrador HL, BC ou DE é utilizado para recuperar
ou armazenar um valor de 8-bits em memória de forma indireta.
| PC |
+ 1 |
+ 2 |
| Byte 0 |
Byte 1 |
Byte 2 |
| opcode |
LL |
HH |
Operação:
p.LL <- LL
p.HH <- HH
Sintaxe:
mnemônico p, HHLL
Ex:
ld sp, #$FFFF
No modo Extended, um operando composto de dois bytes é usado como endereço para
leitura/load, escrita/store de um valor em memória ou como endereço
para desvio de fluxo de execução.
| PC |
+ 1 |
+ 2 |
| Byte 0 |
Byte 1 |
Byte 2 |
| opcode |
LL |
HH |
Operação:
leitura:
r <- (HHLL)
escrita:
(HHLL) <- #valor
(HHLL) <- r
desvio:
PC <- AD.H|AD.L
Sintaxe:
mnemônico r, $HHLL
mnemônico $HHLL
Ex:
call $FF00
Nesse modo, os registradores IX ou IY são utilizados como operandos. Um valor de 8-bits
sinalizado é adicionado aos registradores para formar um endereço de memória onde um
valor é lido ou escrito. Esse modo é usado para acessar arrays, strings e structs.
| PC |
+ 1 |
+ 2 |
| Byte 0 |
Byte 1 |
Byte 2 |
| DD |
opcode |
d |
Operação:
r <-> (IX|IY + d) ; leitura/escrita
ou
(IX|IY + d) <- #valor ;escrita
Sintaxe:
mnemônico r,(IX + d)
mnemônico r,(IY + d)
Ex:
ld a, (IX + 0)
ld b, (IX + 1)
Modified Page zero - Página Zero Modificada
Esse modo de endereçamento é usado apenas pelas instruções RST. Uma instrução CALL implícita
utiliza bits da instrução RST como operando para calcular o endereço do vetor de
interrupção na página zero para onde o PC deve
ser desviado.
Operação:
-
Sintaxe:
RST #00-30h
Ex:
RST #$10
Nesse modo Relative, um valor imediato de 8-bits sinalizado é usado como operando da
instrução para calcular o endereço de 16-bits para desvio inferior ou superior ao PC que é
usado como base. Esse modo é usado por instruções de desvio call cc, jr cc e
ret cc
| PC |
+ 1 |
| Byte 0 |
Byte 1 |
| opcode |
(+/-)e |
Operação:
PC <- PC + (+/-)e
Sintaxe:
mnemônico cc, local_relativo
mnemônico cc, #$e
Onde:
-
Ex:
jr m, nome_local
No modo registrador, os registradores de uso geral são usados como operandos da instrução.
Usado em instruções de load/carga.
Operação:
r <- r’
Sintaxe:
mnemônico r, r’
Ex:
ld a,b
Register Indirect - Registrador Indireto
No ME registrador indireto, um endereço de 16-bits é utilizado de forma indireta para leitura
ou escrita de dados em memória. Um endereço estendido ou um dos pares BC, DE ou HL podem
ser utilizados.
| PC |
+ 1 |
| Byte 0 |
Byte 1 |
| opcode |
nn |
Operação:
r <- (p)
(p) <- r|#nn
Sintaxe:
mnemonico (p), r
mnemonico r, (p)
mnemonico (p), #$nn
Onde:
*Se endereço estendido for usado
Ex:
ld a, (HL)
ld (HL), #$ff
Histórico de atualizações
- 17/02/2026 - versão inicial: Todos os modos de endeçamento
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.