Agenda Modos de Endereçamento
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
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.
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?
SEAC Instrução de Soma: ADD X,Y,Z,P Vantagens Desvantagem (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.
Instruções com 3 OP ADD A,B,X (X) (A)+(B) SUB A,B,X (X) (A)-(B) COp OP 1 OP 2 OP 3 ADD A,B,X (X) (A)+(B) SUB A,B,X (X) (A)-(B) MPY A,B,X (X) (A)*(B) DIV A,B,X (X) (A)/(B) X= A*(B+C*D-E/F)
Instruções com 2 OP ADD A,B (A) (A)+(B) SUB A,B (A) (A)-(B) COp OP 1 OP 2 ADD A,B (A) (A)+(B) SUB A,B (A) (A)-(B) MPY A,B (A) (A)*(B) DIV A,B (A) (A)/(B) X= A*(B+C*D-E/F)
Instruções com 1 OP ADD OP ACC ACC +(OP) SUB OP ACC ACC -(OP) MPY OP ACC ACC *(OP) DIV OP ACC ACC / (OP) LDA OP ACC (OP) STA OP (OP) ACC
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).
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
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
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.
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.
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 relaciona-se com seu índice.
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