:: Organização de Computadores II ::






Endereçamento

No endereçamento, cada instrução especifica uma operação em certos dados e podem ser especificadas de diferentes modos, os mais comuns são:

Endereçamento Imediato: o campo endereço contém o próprio operando direto e não o endereço onde ele está armazenado. Ele é imediato porque é buscado na memória ao mesmo tempo em que a instrução é buscada. Sua vantagem é a de não precisar de uma referencia à memória para buscar o operador e a desvantagem é a que restringe o operando a um número que caiba em um campo de endereçamento.

Endereçamento Direto: é passado no campo endereço o endereço da palavra na memória onde o operando está contido. Sua vantagem é a de que o valor do operando pode ser alterado e a desvantagem é que os endereços diretos são muito curtos para endereçar todos os espaços de memória.

Endereçamento por Registrador: Tem o mesmo conceito de endereçamento direto, a diferença é que o operando estará armazenado em um registrador e não na memória principal. Como o número de registradores é bem menor que o número de posições de memória, o campo de endereçamento é mais curto e assim instruções diferentes são utilizadas para representar operando do registrador e operando da memória principal. Para saber se o operando da instrução pertence à memória principal ou aos registradores, deve-se por um bit a mais, que indica se deseja acessar a memória principal ou um dos registradores. Sua vantagem é que os registradores são mais rápidos que a memória principal. Como são em pequenos números, são necessários apenas poucos bits para endereçar-los e a sua desvantagem é que complica a programação, pelo fato de ter que existir uma lógica para decidir quais instruções serão guardadas em memória e quais serão guardadas em registrador.

Endereçamento Indireto O campo operando  tem um endereço para a memória principal que aponta para outro endereço onde está o valor. Sua vantagem é que a partir de um campo de endereço com número de bits restritos pode-se acessar a um espaço de endereçamento maior e há a possibilidade da implementação de ponteiros e sua desvantagem é o número de acessos para resgatar o valor.

Endereçamento Indexado: Utilizado quando é executada uma operação sobre uma seqüência de estruturas de dados armazenados consecutivamente em memória. Converte na utilização de registros de índice. Os endereços possuem duas parte, o número do registrador de índice e una constante. O endereço do registrador onde está o operando é igual ao número do registro mais constante. A indexação também é usada em casos de endereçar um campo com deslocamento conhecido, como em variáveis locais e procedimentos. Sua vantagem é a implementação de vetores e a desvantagem é o acesso a memória principal.
O Modo de Endereçamento Indexado está ilustrado na figura abaixo:



Endereçamento por Pilha: Consistem em itens de dados armazenados em ordem consecutiva na memória, onde o primeiro item é denominado fundo da pilha. O apontador da pilha é um registrador que contém o endereço do topo da pilha. As instruções sem operadores utilizam a pilha para efetuar as operações, onde os operandos utilizados são sempre retirados do topo da pilha e o resultado dessa operação é deixado no topo. Sua vantagem é oferecer a possibilidade de especificar instruções sem os operandos e a implementação de procedimentos, já sua desvantagem é o acesso a memória principal.

Polonesa Reversa: é uma diferente forma de escrever operações matemáticas, onde os operadores são colocados após os operandos. Sua vantagem  é que toda expressão pode ser expressa sem parênteses, possui notação ideal para avaliar expressões através de pilha, operadores infixados tem precedência e é arbitrário e indesejável.




Vamos agora estudar os tipos de instruções.

Continua >>