REPRESENTAÇÃO DE INSTRUÇÕES
CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080
FORMATO GERAL DE DADOS E INSTRUÇÕES NO INTEL
8080
A memória no Microprocessador Intel 8080 é
organizada em células de 8 bits (1 byte). Cada célula é identificado por um
código composto por 16 bits - o endereço da célula, que geralmente é
representado na base hexadecimal, acarretando um valor entre 0000 e FFFF. O 8080
pode portanto endereçar 65.536 bytes de memória, compostas de memória ROM e
memória de leitura / escrita (também às vezes erroneamente chamada
RAM).
Os dados são armazenados no 8080 na forma de palavras com 8 bits, como mostra a ilustração abaixo.
O bit mais à direita ou bit 0 é o bit menos significativo (em inglês, least significant bit ou LSB) e o bit mais à esquerda ou bit 7 é o bit mais significativo (em inglês, most significant bit ou MSB).
As instruções no Intel 8080 podem ter 1, 2 ou bytes,
ocupando respectivamente uma, duas ou tres células de memória. As ilustrações a
seguir apresentam as instruções de 1, 2 e 3 bytes.
As instruções de 1
byte não tem operando.
As instruções de 2 bytes tem como operando um dado de 8 bits.
As instruções de 3 bytes tem como operando um endereço ou um dado de 16 bits.
Em uma instrução de 3 bytes em que o operando é um endereço, o endereço é armazenado sempre com o byte menos significativo na posição seguinte à do opcode e o byte mais significativo do endereço no 2º byte após o opcode. São ocupadas 3 células consecutivas da Memória Principal do Intel 8080, como mostra a ilustração seguinte:
IDENTIFICAÇÃO DO MODO DE ENDEREÇAMENTO DA INSTRUÇÃO
No Intel 8080, o Código de Operação identifica o modo de
endereçamento, através de seu mnemônico e do correspondente código
binário.
Os registradores envolvidos em instruções que usam os modos de
endereçamento direto por registrador e indireto por registrador são definidos
através de determinados bits no opcode.
MODOS DE ENDEREÇAMENTO
O Intel 8080 dispõe dos seguintes modos de
endereçamento:
Implícito
Imediato
Direto
Registrador
Direto
Registrador Indireto
MODO
IMPLÍCITO (Implied Addressing)
A função da instrução traz implícito o endereçamento. Não
há operando.
Exemplo
No microprocessador
Intel 8080 essas instruções ocupam apenas 1 byte, sendo buscadas em apenas 1
acesso à memória. São as seguintes as instruções com endereçamento implícito:
STC (set carry flag) - "seta" o bit de carry e
CMC (complement carry) - complementa o valor do bit de carry;
- o operando implícito é o carry flaag.
RAL (rotate accumulator
left), RAR (rotate accumulator right) - instruções de deslocamento
de bits, à esquerda e à direita - o operando implícito é o acumulador;
RLC
(rotate accumulator left through carry) e RRC (rotate accumulator
right through carry) - instruções de deslocamento de bits, à esquerda e à
direita, através do carry flag - os operandos implícitos são o
acumulador e o carry flag;
DAA (decimal adjust accumulator)
- instrução para aritmética em BCD - o ooperando implícito é o acumulador (usa
também o flag AC - auxiliary carry).
MODO
IMEDIATO
O valor do campo operando é o próprio
dado.
É usado para trabalhar com valores constantes. O operando
é dito operando imediato (o operando é o próprio valor a ser operado, ou seja, é
o próprio dado a ser processado).
Vantagem
O operando
é obtido durante o ciclo de busca, em apenas 1 acesso (quando o operando é de
apenas 1 byte, tal como um dado de 8 bits) ou em 2 acessos (quando o operando é
de 2 bytes, tal como um dado de 16 bits ou um endereço). Não é necessário fazer
nenhum acesso à MP no ciclo de execução, o que acarreta maior rapidez na
execução.
Obs.: Algumas instruções no modo imediato (geralmente instruções
que manipulam endereços de memória) buscam endereços ou dados de 2 bytes. Ver
exemplos com as instruções JMI Op e LXI
Op.
Desvantagens
a) O tamanho do dado fica limitado
ao número de bits do operando (campo operando da instrução). A limitação de
tamanho do campo operando reduz o valor máximo do dado que pode ser armazenado.
No Intel 8080, o campo Operando tem 8 bits, portanto o maior valor deste campo
será limitado a 28 = 256. Existem instruções que
permitem carregar doublewords, isto é, palavras duplas que ocupam 2
células de memória, em que o maior valor será limitado a 216 = 65.536 (64k).
b) Este modo de endereçamento não
permite flexibilidade para alterar dados que variam a cada execução do programa,
portanto não é adequado para variáveis repetidamente operadas com diferentes
valores a cada execução do programa.
Utilização
-
Inicialização de contadores
- Constantes
- Armazenamento de ponteiros em
registradores
- Indicação de quantidade de posições em operações de
deslocamento de bits (multiplicação e divisão)
Exemplo de instruções no Modo Imediato
Exemplo 1 -
Instrução ADI
ADI data ==> ACC <--- ACC + Op
Soma o valor
(hexadecimal) contido no operando ao acumulador e coloca o resultado no
acumulador.
Valor (hexadecimal) do código da operação: C6
Nº de Bytes
ocupados pela instrução: 2 bytes
Ciclos de acesso da instrução: 2
(leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do Operando | Leitura | Busca |
Endereçamento: imediato
Flags setados: Z, S, P, CY,
AC
Ex.: Considerando o acumulador contendo inicialmente o valor 7AH, qual
será o valor do acumulador após a execução da instrução
ADI dado (add
immediate) ==> ACC <--- ACC + Op (soma o valor hexadecimal do
operando ao acumulador)
Exemplo 2 - Instrução JMP
JMP endereço
(jump) ==> PC <--- Op =>
Carrega o
endereço (contido nos bytes 2 e 3 da instrução) no PC
Equivale a transferir o
controle do programa para a instrução que inicia no endereço especificado pelo
operando.
Valor (hexadecimal) do código da operação: C3
Nº de Bytes
ocupados pela instrução: 3 bytes
Ciclos de acesso da instrução: 3
(leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do 1º byte do Operando | Leitura | Busca |
3º | Busca do 2º byte do Operando | Leitura | Busca |
Endereçamento: imediato
Flags setados:
nenhum
Obs.Importante: O Intel 8080 armazena o byte
menos significativo do operando na posição de memória que segue o
opcode e o byte mais significativo do operando na segunda posição de
memória que segue o opcode.
JMP 1000H ==> CI<--- 1000H
==> causa um desvio para o endereço 1000 (hexadecimal)
Exemplo 3 - Instrução de Desvio
Conditional
Jcondition endereço ("conditional jump") ==> if CCC,
PC <--- endereço
Se a condição estabelecida for
satisfeita, copia o operando (bytes 2 e 3 da instrução) para o PC. Equivale (se
a condição estabelecida for satisfeita) a transferir o controle do programa para
a instrução que inicia no endereço especificado pelo operando.
Valor (hexadecimal) do código da operação: depende da condição
(ver formato da instrução na ilustração)
Nº de Bytes ocupados pela instrução:
3 bytes
Ciclos de acesso da instrução: 3 (leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do 1º byte do Operando | Leitura | Busca |
3º | Busca do 2º byte do Operando | Leitura | Busca |
Endereçamento: imediato
Flags setados: nenhum.
Obs.: Os códigos de condição são:
CONDIÇÃO | CÓDIGO |
NZ - não zero (Z=0) | 000 |
Z - zero (Z=1) | 001 |
NC - não carry (C=0) | 010 |
C - carry (C=1) | 011 |
PO - paridade par (P=0) | 100 |
PE - paridade ímpar (P=1) | 101 |
P - positivo (P=0) | 110 |
M - negativo (P=1) | 111 |
Examplo 4 - Instrução Move Imediato
MVI R,
dado (move immediate) ==> R <--- Op
Move o
valor do operando para o registrador R
Valor (hexadecimal) do código da
operação: depende do registrador (ver formato da instrução na ilustração)
Nº
de Bytes ocupados pela instrução: 2 bytes
Ciclos de acesso da instrução: 2
(leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do Operando | Leitura | Busca |
Endereçamento: imediato
Flags setados: nenhum
MVI C, C1H
==> C <--- C1H
Exemplo 4 - Instrução LXI
LXI data16 (load
register pair immediate) ==> RP <--- Op
Carrega o valor do
operando (dois bytes) em um par de registradores, sendo que o byte 3 é carregado
em Rhigh (byte mais significativo do par de registradores de destino) e o byte 2
é carregado em Rlow (byte menos significativo).
Valor (hexadecimal) do código
da operação: depende do registrador (ver formato da instrução na
ilustração)
Nº de Bytes ocupados pela instrução: 3 bytes
Ciclos de acesso
da instrução: 3 (leitura).
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do 1º byte do Operando | Leitura | Busca |
3º | Busca do 2º byte do Operando | Leitura | Busca |
Endereçamento: imediato
Flags setados: nenhum
LXI M,
31FFH ==> M <--- 31FF (carrega o valor hexadecimal 31FF no Par de
Registradores HL)
Nota: No Intel 8080, as instruções com
endereçamento imediato são quase sempre codificadas com mnemônicos de 3 letras
terminados pela letra I.
Exemplos
instrução de soma
==> mnemônico para endereçamento direto = ADD
instrução de soma ==>
mnemônico para endereçamento imediato = ADI;
instrução “move” ==>
mnemônico para endereçamento direto = MOV
instrução “move” ==> mnemônico
para endereçamento imediato = MVI;
instrução “load” (carrega) ==>
mnemônico para endereçamento direto): LDA
instrução “load” ==> mnemônico
para endereçamento direto = LDI
Obs.: No Intel 8080,
quase todas as instruções imediatas usam o acumulador como operador implícito.
As exceções são:
MVI (move immediate) - pode mover o dado
para qualquer registrador de trabalho ou posição de memória;
LXI
(load register pair immediate) - move um dado de 16 bits
(geralmente um endereço) para qualquer par de registradores.
MODO DIRETO
O valor do campo operando indica o endereço do dado na
MP.
No Intel 8080, como um endereço requer 16 bits, o operando (no
modo direto) terá 16 bits, ocupando 2 células e as instruções no modo de
endereçamento direto terão 3 bytes.
Vantagens
a) É aplicado em mais situações que
o modo imediato;
b) Requer apenas uma referência à memória para busca do
dado (além de uma para a busca da instrução), sendo mais rápido que o modo
indireto.
Desvantagens
a) Limitação do endereço da MP
que pode ser indicado pelo tamanho do campo operando.
b) É mais lento que o
modo imediato.
Utillização
Quando o dado varia de
valor a cada execução.
Exemplos de Instruções no Modo
Direto:
Exemplo 1 - Instrução LDA
LDA endereço
(”load accumulator direct”) ==> ACC <--- (Op)
Carrega o
conteúdo da posição de memória indicada pelo operando (bytes 2 e 3 da instrução)
no acumulador (o operando indica um endereço na memória).
Valor (hexadecimal)
do código da operação: 3A
Nº de Bytes ocupados pela instrução: 3
bytes
Ciclos de acesso da instrução: 4 (leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do 1º byte do Operando | Leitura | Busca |
3º | Busca do 2º byte do Operando | Leitura | Busca |
4º | Busca do Dado | Leitura | Execução |
Endereçamento: direto
Flags setados: nenhum
LDA 978A
===> ACC <--- (978A) = carrega no acumulador o conteúdo da posição de
memória 978A (ver ilustração abaixo).
Exemplo 2 - Instrução
LHLD
LHLD endereço ==> | (load H and L direct) | L <--- (Op) H <--- (Op + 1) |
O conteúdo da posição de memória indicada pelo operando é
carregado no registrador L; o conteúdo da posição de memória seguinte à indicada
pelo operando é carregado no registrador H.
Valor (hexadecimal) do
código da operação: 2A
Nº de Bytes ocupados pela instrução: 3 bytes
Ciclos
de acesso da instrução: 5 (leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do 1º byte do Operando | Leitura | Busca |
3º | Busca do 2º byte do Operando | Leitura | Busca |
4º | Busca do 1º byte do dado (endereço) | Leitura | Execução |
5º | Busca do 2º byte do dado (endereço) | Leitura | Execução |
Endereçamento: direto
Flags setados: nenhum
LHLD 1000H
==> L <--- (1000H) e H <--- (1001H) ===> carrega o conteúdo das
posições 1000H e 1001H no par HL (ver ilustração abaixo).
Exemplo
3 - Instrução SHLD
SHLD endereço ==> | (store H and L direct) | (Op) <--- L (Op + 1) <--- H |
Valor (hexadecimal) do código da operação: 22
Nº de Bytes
ocupados pela instrução: 3 bytes
Ciclos de acesso da instrução: 5, sendo 3
(leitura) e 2 (escrita)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do 1º byte do Operando | Leitura | Busca |
3º | Busca do 2º byte do Operando | Leitura | Busca |
4º | Grava o 1º byte do dado no endereço | Escrita | Execução |
5º | Grava o 2º byte do dado no endereço | Escrita | Execução |
Endereçamento: direto
Flags setados: nenhum
SHLD 7AC1H
==> (7AC1) <--- L e (7AC2) <--- H ===> move o conteúdo do
Registrador L para a posição de memória indicada pelo operando e o conteúdo do
Registrador H para a posição de memória seguinte - (ver ilustração
abaixo).
Exercício:
Comparar o efeito das instruções
acima no modo direto com as instruções equivalentes no modo imediato, em termos
do número de acessos à memória.
Resp: No modo de endereçamento direto,
são necessários mais de 1 acessos à MP para a busca do dado, sendo 1 no ciclo de
busca para busca do operando e pelo menos 1 no ciclo de execução para a busca do
dado propriamente dito. No modo imediato, é necessário apenas um acesso à
memória no ciclo de busca para a busca do dado (o operando é o próprio dado).
Não é necessário nenhum acesso de busca à memória no ciclo de
execução.
MODO INDIRETO
O campo operando contém um endereço de memória cujo conteúdo é o
endereço do dado a ser operado.
Portanto, há um duplo endereçamento. O
endereço intermediário é chamado ponteiro (“pointer”)
O Intel 8080
somente dispõe de instruções com modo de endereçamento indireto usando
registradores como ponteiro. Os exemplos dessa aplicação são apresentados no
item sobre ENDEREÇAMENTO POR REGISTRADOR.
ENDEREÇAMENTO POR REGISTRADOR
Existem outros modos de endereçamento, que usam registradores para
indicar a posição onde estão os dados. Os modos de endereçamento direto e
indireto por registrador funcionam de forma semelhante aos modos de
endereçamento direto e indireto vistos anteriormente (em que o operando aponta
para uma posição de memória), porém utilizando um registrador em lugar do
operando. O conteúdo do Registrador pode ser o dado - endereçamento direto - ou
então é uma referência à memória - endereçamento indireto.
MODO POR REGISTRADOR (Modo por registrador
direto)
O operando
aponta para um registrador, o qual contém o dado.
MODO POR REGISTRADOR INDIRETO
O operando
aponta para um registrador, o qual contém um endereço de memória (ponteiro) onde
está o dado.
Vantagens
Maior velocidade / rapidez
de execução - o acesso ao registrador é muito mais rápido que o acesso à
memória.
Economia de espaço de armazenamento de instrução (o tamanho da
instrução é menor porque como são poucos registradores, são menos bits para seus
endereços).
Desvantagem
Não são adequados para
transferência de variáveis da MP para ULA.
Pequeno número de registradores -
se forem muitos os dados endereçados por registrador, os registradores
disponíveis podem não ser suficientes.
Utilização
Implementação de contadores.
No Intel 8080, a identificação do
registrador envolvido na operação faz parte do próprio opcode.
Identificação dos Registradores no Código de
Operação
Obs.: SSS representa o "Registrador de Origem" e DDD o
"Registrador de Destino"; RP representa "Par de Registradores".
SSS ou DDD | Valor | RP | Valor |
ACC (ou A) | 111 | - | - |
B | 000 | B | 00 |
C | 001 | - | - |
D | 010 | D | 01 |
E | 011 | - | - |
H | 100 | H (ou M) | 10 |
L | 101 | - | - |
- | - | SP | 11 |
Exemplos
Exemplos de Instruções no
Modo por Registrador Direto
Obs.: A documentação Intel denomina
este modo como "Modo Registrador".
Exemplo 1 - Instrução ADD
r
ADD r ("add register") ==> ACC <--- ACC + R -
Soma o valor contido no registrador R ao valor contido no
acumulador.
Valor (hexadecimal) do código da operação: depende do
Registrador
Nº
de Bytes ocupados pela instrução: 1 byte
Ciclos de acesso da instrução: 1
(leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
Endereçamento: registrador direto
Flags setados: Z, S, P, CY,
AC
Exemplo 2 - Instrução DCR R
DCR r
("decrement register") ==> R <--- R - 1 -
Decrementa o
conteúdo do registrador R.
Valor (hexadecimal) do código da operação: depende
do Registrador
Nº
de Bytes ocupados pela instrução: 1 byte
Ciclos de acesso da instrução: 1
(leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
Endereçamento: registrador direto
Flags setados: Z, S, P, AC
(CY não é afetado)
Exemplo 3 - Instrução MOV R1, R2
MOV r1, r2
("move register") ==> r1 <--- r2
O conteúdo do registrador r2
é copiado para o registrador r1 .
Valor (hexadecimal) do código da operação:
depende dos Registradores envolvidos
Nº
de Bytes ocupados pela instrução: 1 byte
Ciclos de acesso da instrução: 1
(leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
Endereçamento: registrador direto
Flags setados: nenhum.
Exemplos de Instruções no Modo por Registrador
Indireto
Obs.: A documentação Intel denomina este modo como "Modo
Registrador Indireto".
Exemplo 1 - Instrução ADD M
ADD M
("add memory") ==> ACC <--- ACC + (HL) -
Soma o valor contido
no endereço referenciado pelo par de registradores HL ao valor contido no
acumulador.
Valor (hexadecimal) do código da operação: 86
Nº de Bytes
ocupados pela instrução: 1 byte
Ciclos de acesso da instrução: 2
(leitura)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca o dado no endereço (HL) | Leitura | Execução |
Endereçamento: por registrador, indireto
Flags setados: Z, S,
P, CY, AC
Exemplo 2 Instrução INR M
INR M (increment
memory) ==> (HL) <--- (HL) + 1
Incrementa o conteúdo da posição
de memória indicada pelo par de registradores HL
Valor (hexadecimal) do
código da operação: 34
Nº de Bytes ocupados pela instrução: 1 byte
Ciclos
de acesso da instrução: 3 (sendo 2 de leitura e 1 de escrita)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca o dado no endereço (HL) | Leitura | Execução |
3º | Grava o resultado - dado + 1 - em (HL) | Escrita | Execução |
Endereçamento: por registrador, indireto
Flags setados: Z, S,
P, AC (CY não é afetado)
Exemplo 3 Instrução MOV M, R
MOV M, r
(move to memory) ==> (HL) <--- r
O conteúdo do registrador r é
copiado para a posição de memória cujo endereço está no registrador M
Valor
(hexadecimal) do código da operação: depende do registrador envolvido
Nº de Bytes ocupados pela instrução: 1 byte
Ciclos de acesso da
instrução: 2 (sendo 1 de leitura e 1 de escrita)
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Grava o dado no endereço (HL) | Escrita | Execução |
Endereçamento: por registrador, indireto
Flags setados:
nenhum
MODO INDEXADO E MODO BASE + DESLOCAMENTO
O Intel 8080 não possui nenhuma instrução com esses modos de
endereçamento, os quais somente foram introduzidos na família Intel a partir do
8086.
Os microprocessadores Intel (após 8086/8) usam registradores
específicos como registradores-base. Estes Registradores de Base são utilizados
para implementar o endereçamento de memória e a segmentação da memória em
páginas de 64 kbytes.
COMBINAÇÃO DE MODOS DE ENDEREÇAMENTO
Algumas instruções usam uma combinação de modos de endereçamento.
Por
exemplo, a instrução CALL usa uma combinação do endereçamento direto (ou
imediato) com endereçamento por registrador indireto.
endereçamento direto -
especifica o endereço da sub-rotina desejada
endereçamento por registrador
indireto - é o Ponteiro da Pilha
Exemplos de Instruções com combinação de Modos de
Endereçamento
Exemplo - Instrução CALL
endereço
CALL endereço ==>
(SP - 1) <--- PCH ==> o
valor contido no byte de mais alta ordem do Program Counter (modo de
endereçamento: registrador direto) é transferido para o endereço de memória
igual ao valor contido no Ponteiro de Pilha (Registrador SP) menos 1 (modo de
endereçamento: registrador indireto)
(SP - 2) <--- PCL ==> o valor
contido no byte de mais baixa ordem do Program Counter (modo de endereçamento:
registrador direto) é transferido para o endereço de memória igual ao valor
contido no Ponteiro de Pilha (Registrador SP) menos 2 (modo de endereçamento:
registrador indireto) ;
SP <--- SP - 2 ==> o valor contido no
Registrador SP é decrementado de 2 unidades (modo de endereçamento:
implícito/imediato);
PC <--- endereço ==> o valor do operando (bytes 2
e 3 da instrução) (modo de endereçamento: imediato) é transferido para o Program
Counter (modo de endereçamento: registrador direto).
A instrução CALL
copia (“push”) o conteúdo corrente do CI para a posição da MP
especificada pelo ponteiro da pilha (Stack Pointer) e transfere o
controle do programa para a instrução cujo código de operação está armazenado na
posição de memória apontada pelo operando.
Valor (hexadecimal) do código da operação: CD
Nº de Bytes ocupados pela
instrução: 3 bytes
Ciclos de acesso da instrução: 5 (sendo 3 de leitura e 2
de escrita)
A instrução CALL requer 5 acessos à memória, sendo 3 para buscar
a instrução (opcode mais operando de 2 bytes) e mais 2 para salvar
("push") o conteúdo (2 bytes) do PC (Program Counter) para o
ponteiro da pilha (Stack Pointer).
Nº | Descrição | Acesso | Ciclo |
1º | Busca do Opcode | Leitura | Busca |
2º | Busca do 1º byte do Operando | Leitura | Busca |
3º | Busca do 2º byte do Operando | Leitura | Busca |
4º | Grava o byte de menor ordem do endereço da próxima instrução (contido no PCL) no endereço indicado por SP - 1 | Escrita | Execução |
5º | Grava o byte de maior ordem do endereço da próxima instrução (contido no PCH) no endereço indicado por SP - 2 | Escrita | Execução |
Modos de Endereçamento: implícito / imediato / registrador direto
/ registrador indireto
Flags setados: nenhum
Ver páginas sobre Pilha e Processamento de
Sub-rotinas
EFEITOS DE TEMPORIZAÇÃO DOS MODOS DE ENDEREÇAMENTO
O número de acessos à memória é o mais importante fator no consumo de tempo
de execução da instrução. O modo de endereçamento afeta o tempo requerido para
executar uma instrução e a memória requerida para seu
armazenamento
Instruções que usam endereçamento implícito ou por
registrador direto são executadas muito rápido, pois trabalham diretamente com o
hardware do processador e seus registradores. No Intel 8080, uma
instrução no modo de endereçamento implícito ou por registrador direto toda pode
ser buscada (“fetched”) em um único ciclo de busca (um único acesso à
memória), correspondente à busca do opcode.
Cada ciclo de
acesso à memória busca uma célula e implica em um número variável de estados,
cujo tempo de duração depende da frequência do clock. Cada instrução
consome um determinado número de ciclos de UCP.
Operações de Entrada e Saída no Intel 8080
Este item
será elaborado posteriormente.