CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

21
CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080

Transcript of CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

Page 1: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080

Page 2: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

A memória no Microprocessador Intel 8080 é organizada em células de 8 bits (1 byte).

Cada célula é identificada 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.

Page 3: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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).

Page 4: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.

Page 5: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

As instruções de 2 bytes tem como operando um dado de 8 bits.

Page 6: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

As instruções de 3 bytes tem como operando um endereço ou um dado de 16 bits.

Page 7: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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:

Page 8: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.

Page 9: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

O Intel 8080 dispõe dos seguintes modos de endereçamento:

Implícito; Imediato; Direto; Registrador Direto; Registrador Indireto.

Page 10: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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 flag.

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 operando implícito é o acumulador (usa também o flag AC - auxiliary carry).

Page 11: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.

Page 12: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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)

Page 13: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.Exemplosinstruçã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): LDAinstruçã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.

Page 14: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.

Vantagensa) É 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.

Desvantagensa) Limitação do endereço da MP que pode ser indicado pelo tamanho do campo operando. b) É mais lento que o modo imediato.

UtillizaçãoQuando o dado varia de valor a cada execução.

Page 15: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.

Page 16: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.

Page 17: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

O operando aponta para um registrador, o qual contém o dado.

Page 18: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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).

Page 19: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.

Page 20: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

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.

Page 21: CONJUNTO DE INSTRUÇÕES DO MICROPROCESSADOR INTEL 8080.

Torres, Gabriel. Hardware Curso completo 4ª Edição.

Stallings, Willian. Arquitetura e Organização de Computadores 5ª Edição.

Morimoto, Carlos E. Guia do Hardware 3ª Edição.