Agenda •Modos de Endereçamento PUCC 1 Instrução de Máquina Conjunto de bits Cód. Operação Operando • Cód. Operação: indica o tipo da operação a ser realizada • Operando: endereço do dado PUCC 2 Instrução • Na prática, o conjunto de instruções definidos para uma determinada CPU, é sempre constituído de uma mistura de formatos diferentes, para otimizar cada caso. • Para se compreender a representação das instruções podemos efetuar a análise segundo dois aspectos: – Quantidade de Operandos – Modo de interpretação do valor armazenado no campo operando. PUCC 3 Quantidade de Operandos • Além dos bits do código de operação, as instruções possuem um ou mais grupos de bits chamados operandos que têm por função identificar e localizar o dado a ser processado. • SEAC COp OP 1 OP 2 OP 3 &Próx.Inst. Quantos Bits? PUCC 4 SEAC • Instrução de Soma: ADD X,Y,Z,P (Z) (X)+(Y), (P) • Vantagens – A instrução possui todos os operandos para uma operação aritmética. – Menor quantidade de Instruções em um Programa. • Desvantagem – Ocupação demasiada de espaço em memória; a maioria das instruções não necessitam de três operandos. PUCC 5 Instruções com 3 OP COp • • • • OP 1 ADD A,B,X SUB A,B,X MPY A,B,X DIV A,B,X (X) (X) (X) (X) OP 2 OP 3 (A)+(B) (A)-(B) (A)*(B) (A)/(B) X= A*(B+C*D-E/F) PUCC 6 Instruções com 2 OP COp • • • • ADD A,B SUB A,B MPY A,B DIV A,B (A) (A) (A) (A) OP 1 OP 2 (A)+(B) (A)-(B) (A)*(B) (A)/(B) X= A*(B+C*D-E/F) PUCC 7 Instruções com 1 OP COp • • • • • • ADD OP SUB OP MPY OP DIV OP LDA OP STA OP PUCC ACC ACC ACC ACC ACC (OP) OP ACC +(OP) ACC -(OP) ACC *(OP) ACC / (OP) (OP) ACC 8 Modos Endereçamento • O endereçamento de uma instrução é sempre realizado através do valor armazenado em PC • Todo ciclo de instrução é iniciado pela transferência da instrução para o IR • Toda instrução consiste em uma ordem codificada (Cód.Oper.) para a CPU executar uma operação qualquer sobre dados. • A localização dos dados pode estar indicada explicitamente na própria instrução, por um ou mais conjunto de bits, denominados campos operando, ou implicitamente (dado armazenado no ACC, que é único). PUCC 9 Modo Imediato • O modo mais simples de se obter um dado é indicar seu próprio valor no campo operando ao invés de buscá-lo na memória. • O dado é transferido juntamente com a instrução para o IR. • Utilizado na inicialização de contadores, operações com constantes matemáticas... • Problema: limitação do tamanho do campo operando nas instruções, o que reduz o valor máximo a ser manipulado PUCC 10 Modo Direto • O valor binário contido no campo operando da instrução indica o endereço da memória onde se localiza o dado. • O endereço pode ser de uma célula onde o dado está contido ou o endereço de uma célula inicial, quando o dado usa várias células. • Uma única referência para à MP para buscar o dado. • Desvantagem: limitação de memória a ser usada conforme o tamanho do campo operando. – Memória de 256 MB - ?? Bits no campo operando PUCC 11 Modo Indireto • O valor binário do campo operando representa o endereço de uma célula, porém o conteúdo dessa célula não é o valor do dado, é um outro endereço cujo conteúdo é o valor do dado. • Endereçamento duplo, mais ciclos de memória para buscar o dado. • Elimina-se o problema do modo direto, pois estando o endereço armazenado na memória ele poderá ocupar mais que uma célula. PUCC 12 Endereçamento por Registrador • Características semelhantes aos modos direto e indireto, exceto que a célula de memória referenciada na instrução é substituída por um dos registradores da CPU. • Vantagem: número menor de bits para referenciar os registradores. • Tempo de Acesso ao dado é melhor. • Modo direto e Modo Indireto. PUCC 13 Modo Indexado • Manipular endereços de acesso a elementos de certos tipos especiais de dados – Vetores são armazenados seqüencialmente na memória e que sua localização pode ser referenciada por um ponteiro que é alterado para indicar o elemento desejado. • O nome indexado vem do fato que a obtenção do endereço de um dado relacionase com seu índice. PUCC 14 Moda Base mais Deslocamento • Utilizado com o propósito de reduzir o tamanho das instruções e facilitar o processo de realocação dinâmica de programas. • Em vez de ser necessário que o campo operando tenha um tamanho correspondente à capacidade total de endereçamento da MP, basta que o endereço desejado seja obtido pela soma de um valor existente em um dos registradores da CPU com o valor contido na instrução. • Dois campos na instrução substituem o operando: BASE e o Deslocamento PUCC 15 PUCC 16