Baixe o app para aproveitar ainda mais
Prévia do material em texto
Tipos de Instruções de Dados e Tipos de Endereçamento SST Ancelmo, Jose Roberto Tipos de Instruções de Dados e Tipos de Endereçamento / Jose Roberto Ancelmo Ano: 2020 nº de p. : 11 Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados. Tipos de Instruções de Dados e Tipos de Endereçamento 3 Apresentação Em nosso estudo, compreenderemos os tipos de instruções dos computadores, os quais têm a função da movimentação, operações e transferências de controle de dados. Estudaremos a catalogação dessas instruções e veremos também os tipos de endereçamento entre memória e processador, bem como o conceito de chamadas de funções ou serviços. Tipos de Instruções A maioria das instruções opera sobre dados. Como comentam Null e Lobur (2010), fabricantes de computadores regularmente agrupam instruções nas seguintes categorias: movimentação de dados, aritméticas, booleanas, manipulação de bits, E/S, transferências de controle e propósito especial. Para Stallings (2002, p. 344), as instruções podem ser catalogadas em: 1. Processamento de dados: instruções aritméticas e lógicas. 2. Armazenamento de dados: instruções de memória. 3. Movimentação de dados: instruções de E/S. 4. Controle: instruções de testes e de desvio. Com relação às operações de processamento de dados, para Null e Lobur (2010), elas incluem instruções aritméticas que usam números inteiros e de ponto-flutuante. As instruções aritméticas incluem operações de soma (ADD), multiplicação (MULTIPLY), divisão (DIVIDE), incremental (INCREMENT), decremental (DECREMENT) e de mudança de sinal (NEGATE). Stallings (2002, p. 344) afirma que “[…] as instruções lógicas booleanas operam sobre bits de uma palavra, como bits e não como números”. Instruções lógicas incluem AND, NOT, OR, XOR, TESTE e COMPARE. Com relação às operações de movimentação de dados (instruções de E/S), elas são necessárias para transferir dados e resultados da memória para o usuário. 4 Para as operações de armazenamento de dados (instruções de memória), existem instruções de memória para mover dados entre a memória e os registradores, de registradores para registradores e de registradores para a memória e incluem as instruções MOVE LOAD, STORE, PUSH, POP, EXCHANGE e suas variações (NULL; LOBUR, 2010). Nas operações de controle, as instruções de testes são usadas para testar o valor de uma palavra de dados ou o estado de uma computação. Instruções de desvio são utilizadas para desviar a execução de um programa para uma nova instrução, “[…] dependendo do resultado de um teste” (STALLINGS, 2002, p. 344). Incluem instruções de desvio e paradas: JUMP, RETURN, SKIP, HALT, WAIT. No quadro a seguir, resumimos os tipos de instruções e operações de um processador. Tipo de Instruções e operações de um processador. Tipo de Instruções Operações Instruções Processamento de Dados Aritméticas • Add: Soma dois Operandos. • Multiply: Calcula o produto entre dois operandos. • Divide: Calcula o quociente entre dois operandos. • Increment: Soma 1 ao operando. • Negate: Muda o sinal do operando. Lógicas • And, Not, Or, Xor, Teste: Efetuam operações lógicas específicas bit a bit. • Compare: Efetua uma comparação lógica ou aritmética de dois ou mais operandos. Movimentação de Dados (Operações de E/S) Transferência de Dados de E/S (Usuário e Memória) • Read (Input): Transfere dados da porta ou dispositivo E/S para a memória principal ou registrador. • Read (Output): Transfere dados da fonte especificada para uma porta ou um dispositivo de E/S.c 5 Armazenamento de Dados (Transferência de Dados) Transferência entre memória e registradores (Move e armazena, retira do armazenamento e move). • Move: Transfere uma palavra ou bloco da fonte para o destino. • Load: Transfere uma palavra da memória para o processador. • Store: Transfere uma palavra do processador para a memória. • Push: Transfere uma palavra da fonte para o topo da pilha. • Pop: Transfere uma palavra do topo da pilha para o destino. • Exchange: Troca os conteúdos dos operandos-fonte e de destino. Controle Desvio de Execução por meio de testes condicionais • Jump (condicional e não condicional): carrega o PC com o endereço especificado. • Return: substitui o conteúdo do PC e de outros registradores com os valores armazenados em uma posição conhecida. • Skip (condicional e não condicional): incrementa o PC para o endereço da próxima instrução com desvio ou sem desvio. • Halt: Para a execução de um programa. • Wait: Para a execução de um programa; testa a condição especificada repetidamente. Fonte: Adaptado de Stallings (2002). Os tipos de operandos que podem ser diretamente manipulados por uma arquitetura dependem, é claro, dos tipos de instruções oferecidas. O apresentado nos mostrou como os principais tipos de dados são normalmente representados em uma arquitetura de uso geral. Tipos de Endereçamento Vimos que, quando o processador executa uma instrução, ele realiza operações específicas por meio de movimentação e armazenamento de dados entre memória e registradores. Esses dados podem residir em um registrador, na memória principal ou em uma porta de E/S. Para realizar o acesso a essas memórias e diferentes localizações dos operandos, o processador pode realizar sete modos de endereçamento: 6 1. Endereçamento por registro. 2. Endereçamento por base. 3. Endereçamento direto. 4. Endereçamento imediato. 5. Endereçamento indireto por registro. 6. Endereçamento indexado. 7. Endereçamento por base indexada. O quadro que segue apresenta os principais modos de endereçamento e suas principais características, como o modo de endereçamento por registro, por base, direto e imediato. Principais tipos de endereçamento: características, vantagens e desvantagens. Tipos de Endereçamento Operaçõo Exemplo Características, Vantagens e Desvantagens Endereçamento por registro MOV AX, BX (move operando entre registradores) AX BX • Os dois operandos são registradores. • O tamanho do campo de endereço requerido na instrução é pequeno (limitado). • Não requer nenhuma referência à memória. • Tempo de acesso é menor que a memória principal. Endereçamento por base (2) (Vetores na memória) MOV CX, [BX+0102H] (registrador base + deslocamento adicional) • O registrador referenciado contém um endereço base de memória e o campo de endereço, um deslocamento em relação a esse endereço. • Utilizado no tratamento de vetores. Apenas os registradores BX e BP podem ser utilizadps como base. 7 Endereçamento direto (3) MOV BX, [1102H] Deslocamento dado por um número ou nome de variável. BX (DS:1102H) • Comum nas primeiras gerações de computadores. • Requer apenas um acesso à memória e nenhum cálculo especial (simples). • Sua desvantagem é fornecer um espaço de endereço limitado. Endereçamento imediato MOV AL, 17H AL 17H • É a forma mais simples de endereçamento. • O valor do operando é especi icado diretamente na instrução. • Pode ser usado para de inir constantes ou para atribuir valores iniciais em variáveis. • Vantagem por não requerer qualquer acesso à memória para obter o operando além do acesso para obter a própria instrução economizando um ciclo de cache ou de memória no ciclo de instrução. • Tamanho do operando é limitado. Fonte: Adaptado de Stallings (2002). De acordo com o quadro apresentado, os modos de endereçamento podem ser resumidos em: Endereçamento de registro: ocorre de registro ou memória para outro registro ou memória. Ou seja, os dados saem do registro para outro registro ou para outra memória, bem como podem sair da memória para um registro ou para outro local da memória. 8 Endereçamento imediato: transfere-se da fonte de forma imediata, por meio de um número constante em hexadecimal. Endereçamento direto: move uma informação entre um endereço de memória e um registro. Endereçamento indireto de registro:ocorre entre registro e local da memória onde ela é endereçada por um registro de índice ou registro de base, que são BP, BX (BH e BL), SI e DI. Usado em endereços de segmentos de dado do offset. Endereçamento de base índice: igual ao modo de endereçamento indireto de registro, porém ele também usa o registro de índice (SI ou DI). Endereçamento relativo de registro: também usa registro de índice ou registro de base, mas com algum deslocamento no endereço. Endereçamento relativo de base índice: igual ao caso anterior, mas usando ambos os registros (de índice e de base), além do deslocamento. Chamadas a funções Para Weber (2012), os programas de montagem podem realizar “chamadas de serviços”, ou seja, executar funções de serviços do sistema operacional (e de BIOS [Basic Input Output/System – sistema básico de E/S]) por meio de interrupções de software pela instrução INT. As interrupções são sinais enviados ao microprocessador, também chamados de armadilhas (traps) ou exceções usadas por diversas aplicações de software. Computadores modernos suportam tanto interrupções de software como de hardware usando tratadores de interrupções (NULL; LOBUR, 2010). Quase todos os computadores apresentam “[…] [tais mecanismos] pelos quais componentes distintos do processador (E/S, memória) podem interromper a sequência normal de execução do processador” (STALLINGS, 2002, p. 63). Um exemplo de chamadas de funções de E/S para o sistema operacional utiliza a interrupção 21h por meio de passagem de parâmetros, uso para entrada de teclado, saída na tela e retorno ao DOS, entre outros serviços. 9 O que segue mostra as classes de interrupções. Vamos conhecê-las? Classes de interrupções Classes de Interrupções Interrupção de software Gerada por alguma condição que ocorra como resultado da execução de uma instrução, tal como overflow em uma operação aritmética, divisão por zero, tentativa de executar uma instrução de máquina ilegal e referência a um endereço de memória fora do espaço do programa. Interrupção de relógio Gerada pelo relógio interno do processador. Esse tipo de interrupção permite que o sistema operacional execute certas funções a intervalos de tempos regulares. Interrupção de entrada e saída Gerada por um controlador de e/s para sinalizar a conclusão de uma operação ou para sinalizar a ocorrência de uma situação de erro. Interrupção de falha de hardware Gerada na ocorrência de uma falha, tal como queda de energia ou erro de paridade de memória. Fonte: Adaptado de Stallings (2002, p. 63). As interrupções por software podem ser ativadas diretamente por programas Assembly (linguagem de montagem), invocando da interrupção desejada com a instrução INT. O uso das interrupções facilita bastante a criação de programas, tornando-os menores. Pode-se chamar uma função, por exemplo, a função de E/S 21h (que apresenta vários serviços): • MOV AH, 2 • INT 21h Nessa operação, usamos o serviço “2” inserido no registrador AH do processador antes da chamada da função (INT 21h) para escrever o caractere que está em DL (registrador de dados) na tela. 10 Fechamento Chegamos ao final do estudo sobre os tipos de instruções de dados e tipos de endereçamento, e compreendemos sobre os tipo de instruções que são classificadas em processamento de dados, armazenamento de dados, instruções de memória, movimentação de dados: instruções de E/S e controle. Em um segundo momento, estudamos os tipos de endereçamento, classificados em endereçamento por base; endereçamento direto; endereçamento imediato; endereçamento indireto por registro; endereçamento indexado; endereçamento por base indexada. Por fim, compreendemos as funções utilizadas pelos computadores para a execução de diversos serviços do sistema operacional. 11 Referências NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organização de Computadores. Porto Alegre: Bookman, 2010. STALLINGS, W. Arquitetura e Organização de Computadores: projeto para o desempenho. São Paulo: Prentice Hall, 2002. WEBER, R. F. Fundamentos de arquitetura de computadores. 4. ed. Porto Alegre: Bookman, 2012.
Compartilhar