Organização de Computadores Aula 7 Prof. Luiz di Marcello INSTRUÇÕES O QUE SÃO E PARA QUE SERVEM? • São as ordens que o computador entende • Cada família de processadores tem o seu próprio conjunto de instruções instruction set • Quem usa essas instruções? O programador Assembly, os compiladores Ninguém programa utilizando as instruções do processador! Programas são desenvolvidos em linguagens de alto nível! • Instruções podem ter formatos diferentes, dependendo do número de operandos TIPOS DE INSTRUÇÕES Instruções Aritméticas e Lógicas Realizam operações aritméticas (ADD, SUB ...) e lógicas (AND, OR) Instruções de Movimentação de Dados Transferem dados entre registradores ou entre registrador e memória principal (MOV) Instruções de Transferências de Controle Executam o desvio do fluxo sequencial do código (JMP) FORMATO DE UMA INSTRUÇÃO CÓDIGO DA OPERAÇÃO Indica que operação será executada. A quantidade de bits desse código determina o número máximo de instruções OPERANDO(S) Indica o(s) dado(s) que será(ão) manipulado(s): números, caracteres, endereços EXEMPLOS ADD: soma o primeiro operando com o segundo, o resultado fica armazenado no primeiro operando: ADD op1,op2 ADD OP1 OP2 ADD R, op1 ADD R OP1 • MOV: copia o segundo operando (fonte) para o primeiro operando (destino): MOV op1,op2 MOV OP1 OP2 • JNZ: desvia a execução do programa para o endereço indicado JNZ op1 JNZ OP1 EXERCÍCIO 1 Um determinado processador possui um conjunto de 64 instruções. Quantos bits de opcode a instrução deverá possuir? OPCODE ? OPER1 OPER2 ... OPERn REGISTRADORES • Registradores de uso geral para armazenamento temporários dos dados que serão processados Exemplos: AX, BX • Registradores de uso específico para funções prédefinidas de controle Exemplos: IR, PSW, PC MODOS DE ENDEREÇAMENTO IMEDIATO Utiliza um valor como operando e não um endereço na memória ADD #A,R1 DIRETO Indica o endereço de memória onde está o operando ADD (A), R1 INDIRETO Indica um ponteiro para o operando ADD (R1),R2 MODOS DE ENDEREÇAMENTO REGISTRADOR O endereço se refere a um registrador ADD R,OP1 DESLOCAMENTO Obtido pela soma do operando com o conteúdo de um registrador base ADD (A)R1, R2 EXERCÍCIO 2 Um processador possui um conjunto de instruções que emprega vários modos de endereçamento. Considere que a memória principal possui endereços de 16 bits e o mapa de memória abaixo. Para cada item diga qual o valor obtido. ENDEREÇO CONTEÚDO 15B9 7C 15BA 82 15BB 15 15BC BE 15BD 9A 15BE 75 a) A instrução possui o modo direto e o operando possui o valor 15B9: b) A instrução usa o modo imediato e o operando possui o valor 15BA: c) A instrução usa o modo indireto e o operando possui o valor 15BB: EXERCÍCIO 2 Um processador possui um conjunto de instruções que emprega vários modos de endereçamento. Considere que a memória principal possui endereços de 16 bits e o mapa de memória abaixo. Para cada item diga qual o valor obtido. ENDEREÇO CONTEÚDO 15B9 7C 15BA 82 15BB 15 15BC BE 15BD 9A 15BE 75 a) A instrução possui o modo direto e o operando possui o valor 15B9: 7C b) A instrução usa o modo imediato e o operando possui o valor 15BA: 15BA c) A instrução usa o modo indireto e o operando possui o valor 15BB: 75 EXERCÍCIO 3 Considere uma máquina hipotética com as seguintes características: INSTRUÇÕES 0001 Carrega ACC da memória 0010 Armazena ACC na memória 0101 Adiciona ao acumulador ACC o valor da memória 0011 Carrega ACC (acumulador) do dispositivo de I/O 0111 Armazena ACC no dispositivo de I/O • • • • • 12 bits: 4 bits para código da operação e os demais para endereço O dispositivo 5 fornece o valor 3 PC (Program Counter) inicial contém o valor 300 O acumulador ACC está inicialmente vazio End. Instrução O endereço 50h possui o valor 2 300 0011 00000101 armazenado 301 0101 01010000 • Programa em execução 302 0010 01100000 Organização de Computadores Exercícios Prof. Luiz di Marcello 1) No conjunto de instruções de um processador podemos citar três tipos de endereçamento: IMEDIATO, DIRETO e INDIRETO. Correlacione esses três tipos de endereçamento (na sequência IMEDIATO, DIRETO e INDIRETO) com o seu significado encontrado nas sentenças abaixo: I. indica o endereço de memória onde está o operando II. indica um ponteiro para o operando III. utiliza um valor como operando e não um endereço da memória ( ( ( ( ( ) I, II e III ) II, I e III ) III, I e II ) I, III e II ) II, III e I 2) Considerando uma instrução com código de operação de 4 bits e operando de 8 bits, cujo processador trabalhe com endereçamento direto, quantas instruções no máximo podem existir nessa configuração e qual o maior endereço (em hexadecimal) pode servir de operando? ( ( ( ( ( ) 4 instruções diferentes e maior endereço FFh ) 8 instruções diferentes e maior endereço 99h ) 16 instruções diferentes e maior endereço FFh ) 32 instruções diferentes e maior endereço FFh ) 16 instruções diferentes e maior endereço EEh