MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES

Documentos relacionados
Unidade 1: O Computador

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROGRAMAÇÃO DE COMPUTADORES I

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

10. CPU (Central Processor Unit) Conjunto das instruções Estrutura interna Formato das instruções...

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Fundamentos de Programação. Diagrama de blocos

ARQUITETURA DE COMPUTADORES. Professor: Clayton Rodrigues da Siva

Introdução à orientação a objetos

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

SISTEMAS DISTRIBUÍDOS

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Organização de Computadores 1

MÓDULO 2 Topologias de Redes

Banco de Dados I. Prof. Edson Thizon

Fundamentos de Teste de Software

ARTIGO. Sobre monitoramento a Distancia e aplicação automática de medicamentos. Sistema de monitoração a distancia e aplicação de medicamentos.

Sistemas Operacionais. Rodrigo Rubira Branco

Engenharia de Software II

4 Sistema Computacional:

DOCUMENTO DE REQUISITO DE SOFTWARE

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Componentes de um Computador: Modelo Von Neumann

Introdução à Programação de Computadores Parte I

FORMULÁRIO PARA CRIAÇÃO DE DISCIPLINA

Inteligência Artificial

Aula 03. Processadores. Prof. Ricardo Palma

Informática I. Aula Aula 19-20/06/06 1

Arquitecturas de Software Enunciado de Projecto

Conteúdo programático

Fundamentos de Sistemas Operacionais

O Funcionamento do Processador

Arquitetura e Organização de Computadores I

Programação Orientada a Objetos SANTOS, Rafael

O Sistema de Computação

Antes de deixarmos o hardware (1) Nível da Arquitetura do Conjunto das Instruções

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

Experiência 04: Comandos para testes e identificação do computador na rede.

CRIAÇÃO DE TABELAS NO ACCESS. Criação de Tabelas no Access

Implementação de um serviço de correio eletrônico na Intranet do Pólo de Touros utilizando o ambiente SQUIRELMAIL e POSTFIX em um Servidor Linux

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Processamento de Dados aplicado à Geociências. AULA 1: Introdução à Arquitetura de Computadores

Curso C: Ponteiros e Arrays

Probabilidade. Luiz Carlos Terra

Sistemas Distribuídos

Redes de Computadores

Nivel de Linguagem de Montagem (Assembly)

Lista de Exercícios 1

Gerenciamento do Escopo do Projeto (PMBoK 5ª ed.)

Sefaz Virtual Ambiente Nacional Projeto Nota Fiscal Eletrônica

Introdução à Informática

FACULDADE MULTIVIX CURSO DE ENGENHARIA DE PRODUÇÃO 2º PERÍODO MARIANA DE OLIVEIRA BERGAMIN MONIQUE MATIELLO GOMES THANIELE ALMEIDA ALVES

ASPECTOS CONSTRUTIVOS DE ROBÔS

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

DIMENSÕES DE PESQUISA EM ENGENHARIA DE SOFTWARE

O que é um banco de dados? Banco de Dados. Banco de dados

UNIVERSIDADE ESTADUAL DO CENTRO-OESTE - UNICENTRO CURSO DE PÓS GRADUAÇÃO EM MÍDIAS NA EDUCAÇÃO JULIANA LEME MOURÃO ORIENTADOR: PAULO GUILHERMETI

Aula 11: Desvios e Laços

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009

Introdução. Aula 02. Estrutura de Dados II. UFS - DComp Adaptados a partir do material da Profa. Kenia Kodel Cox

Depois do estudo deste capítulo, o estudante deve ser capaz de:

Emparelhamentos Bilineares Sobre Curvas

Organização e Arquitetura de Computadores I

Flávia Rodrigues. Silves, 26 de Abril de 2010

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Tópicos Avançados em Banco de Dados Dependências sobre regime e controle de objetos em Banco de Dados. Prof. Hugo Souza

PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I

Acionamento de Motores: PWM e Ponte H

Auditoria de Meio Ambiente da SAE/DS sobre CCSA

Sistemas Computacionais e Hardware. Disciplina: Informática Prof. Higor Morais

UNIVERSIDADE ESTADUAL DE CAMPINAS FACULDADE DE EDUCAÇÃO. Elaborado por Gildenir Carolino Santos Grupo de Pesquisa LANTEC

Manual Remessa Bancária

Arquitetura e Organização de Computadores. Histórico. Gerações

Arquitetura e Organização de Computadores. Profa. Débora Matos

1 Circuitos Pneumáticos

Orientação a Objetos

Análise de Sistemas 3º Bimestre (material 2)

EDITAL PARA INSCRIÇÃO DE TRABALHOS NO III CURSO DE EXTENSÃO SOBRE O TRABALHO DO ASSISTENTE SOCIAL NA EDUCAÇÃO DO IFMG

Controlador de DMA. Gustavo G. Parma

Estudo sobre a dependência espacial da dengue em Salvador no ano de 2002: Uma aplicação do Índice de Moran

Deswik.Sched. Sequenciamento por Gráfico de Gantt

Matrizes de Transferência de Forças e Deslocamentos para Seções Intermediárias de Elementos de Barra

AULA 07 Distribuições Discretas de Probabilidade

Módulo e-rede Magento v1.0. Manual de. Instalação do Módulo. estamos todos ligados

Projetando um Computador

Sistemas Numéricos. Tiago Alves de Oliveira

Gestão Documental. Gestão Documental

Curso de Engenharia de Produção. Organização do Trabalho na Produção

Banco de Dados. Modelo Entidade - Relacionamento. João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP

CATÁLOGO DE APLICAÇÕES Rateio CC Contas a Pagar

5838 Maquinação Introdução ao CNC

Transcrição:

MODOS DE ENDEREÇAMENTO E CONJUNTO DE INSTRUÇÕES Alexandre Lucas Chichosz Graduando em Engenharia da Computação, Faculdades Integradas de Três Lagoas FITL/AEMS Calwann de Souza Freire Graduando em Engenharia da Computação, Faculdades Integradas de Três Lagoas FITL/AEMS Myke Albuquerque Pinto de Oliveira Graduando em Engenharia da Computação, Faculdades Integradas de Três Lagoas FITL/AEMS Oseias Marques Silva Graduando em Engenharia da Computação, Faculdades Integradas de Três Lagoas FITL/AEMS André Aparecido Leal de Almeida Docente das Faculdades Integradas de Três Lagoas FITL/AEMS Alan Pinheiro de Souza Mestre em Informática UFRJ; Docente das Faculdades Integradas de Três Lagoas FITL/AEMS RESUMO Este artigo científico enuncia detalhadamente como as instruções lógicas da Unidade Central de Processamento interagem com os modos de endereçamento de memória e como são utilizados os campos operandos de uma instrução de máquina. Serão abordados os modos de endereçamento desenvolvidos para processadores, sendo eles: imediato, direto, indireto, por registrador e deslocamento, além de apresentar o desenvolvimento, demonstrando o seu funcionamento, concretizado por exemplos de instruções em linguagem de baixo nível. Por fim, será apresentado um quadro contendo as vantagens e desvantagens de cada tipo de modo de endereçamento. PALAVRAS-CHAVE: endereçamento de memória; linguagem Assembly; instruções de máquina; operadores e operandos. INTRODUÇÃO Uma instrução de máquina é um comando para uma operação básica da unidade central de processamento (UCP). Na visão de Stallings (2003), uma instrução deve especificar o código da operação que será realizada, a referência dos operandos fonte e destino e o endereço da próxima instrução. Por exemplo, uma instrução para somar os números 5 e 8 deve informar o código de operação (C. Op.), nesse caso é um código numérico padronizado para a operação de soma, os 1757

operandos, sendo eles 5 e 8, e o local onde será guardado o resultado da operação que pode ser um registrador da UCP ou uma célula da memória principal (MP). Segundo Stallings (2003), na maioria dos casos, a próxima instrução é a que segue imediatamente a instrução corrente. Nesses casos, a instrução não inclui uma referência explícita para a próxima instrução. A instrução de máquina indica em seu campo operando a localização do referido dado, havendo vários modos de endereçamento para efetuar essa busca pelos dados, podendo ser explícita ou implícita. No caso de referência explícita, existem seis principais modos de endereçamento: (i) imediato; (ii) direto; (iii) indireto; (iv) por registrador; (v) indireto via registrador; (vi) por deslocamento. Este artigo está dividido em sete seções, sendo a primeira referente a conjunto de instruções da UCP. A segunda seção trata do modo de endereçamento imediato. A terceira abrange o modo de endereçamento direto. Na quarta seção será abordado o modo de endereçamento indireto. A quinta seção refere-se ao modo de endereçamento de registrador. A sexta seção detalha o modo de endereçamento indireto via registrador. A sétima seção explica o modo de endereçamento por deslocamento e seus usos: endereçamento relativo, endereçamento baseado em registrador e indexação. Da segunda a sétima seção, há exemplos de código em Linguagem Assembly (BERTOGNA, 2015), com base no microcontrolador 8051. Por último, serão apresentadas as considerações finais que condensam as vantagens e as desvantagens de cada modo de endereçamento. 2 CONJUNTO DE INSTRUÇÕES O processador do computador funciona seguindo ordens simples e básicas através de instruções, as quais podem efetuar a soma de dois números, mover um dado de um local para o outro ou incrementar valor a um número. Para realizar tarefas mais complexas, a UCP utiliza um conjunto de instruções. Essas ordens são transmitidas ao hardware para serem interpretadas e executadas por meio de sinais elétricos que podem representar o bit 0 ou bit 1, de um conjunto de bits, que por sua vez é denominado instrução de máquina (MONTEIRO, 2012). A instrução de máquina possui, basicamente, dois campos, sendo cada um deles formados por uma determinada quantidade de bits, que varia de acordo com a 1758

arquitetura e o processador, sendo eles: (i) Código de Operação (C. Op.): define o que fazer e como fazer ao processador; (ii) Operando: indica ao processador qual dado será manipulado. Um exemplo simples de formato de instrução é mostrado na Figura 1. Figura 1. Formato de instrução simples, com dois operandos. 4 bits 6 bits 6 bits Código de Operação Fonte: Adaptado de Monteiro, 2012. Referência ao operando 16 bits Referência ao operando 3 ENDEREÇAMENTO IMEDIATO O método mais simples e rápido de obter um dado é indicar seu próprio valor no campo operando da instrução, em vez de buscá-lo na memória, assim é o modo de endereçamento imediato (MONTEIRO, 2012). Segundo Stallings (2003), a principal vantagem deste método é economizar acesso a memória principal para obter o operando. Entretanto uma das desvantagens, de acordo com Monteiro (2012), consiste na limitação do tamanho do dado, pois o mesmo é limitado ao tamanho do campo do operando da instrução, assim apresentado restrições ao tamanho do dado referenciado. Utilizando como exemplo o formato de instrução da Figura 2, se o endereçamento fosse imediato, o dado estaria limitado a 8 bits de tamanho, podendo representar um inteiro entre -128 e 127 (com sinal), ou entre 0 e 255 (sem sinal). Conforme Bertogna (2015), o exemplo a seguir de instrução em linguagem Assembly, utiliza o modo de endereçamento imediato para mover o valor 25 16 para o registrador A: MOV A, #25H. Figura 2. Instrução do modo de endereçamento imediato. 4 bits 8 bits Código de Operação Fonte: Adaptado de Stallings, 2003. Referência imediata ao operando (valor do dado) 12 bits Referência ao operando 1759

4 ENDEREÇAMENTO DIRETO O modo de endereçamento direto, de acordo com Stallings (2003), é um método no qual o campo de endereço da instrução contém o endereço efetivo do operando, que por sua vez encontra-se na memória principal. Esse endereçamento é também um modo simples de acesso, pois requer apenas uma referência a memória principal para buscar o dado, sendo, porém, mais lento que o modo imediato por fazer referência à memória (MONTEIRO, 2012). A limitação da memória a ser usada, conforme o campo operando, oferece uma desvantagem a este modo de endereçamento. Apresentando um formato de instrução diferente, agora com campos operandos de seis bits, pode endereçar somente 64 Bytes (endereços de 0 16 a 3F 16 ). Neste tipo de endereçamento, Bertogna (2015) demonstra que os dados são acessados na posição de memória diretamente especificada na instrução, movendo para A o conteúdo da posição de memória 25 16. Segue um exemplo de instrução em linguagem Assembly: MOV A, 25H. Este modo de endereçamento é exemplificado pela ilustração da Figura 3. Figura 3. Instrução do modo de endereçamento direto. Fonte: Adaptado de Stallings, 2003. 5 ENDEREÇAMENTO INDIRETO No modo de endereçamento indireto, a instrução apresenta um endereço de posição de memória (similar ao endereçamento direto), entretanto esta posição contém endereço de outra que contém o operando (NULL; LOBUR, 2010). Esse endereço intermediário é chamado de apontador ou ponteiro, conforme está ilustrado na Figura 4. 1760

Figura 4. Instrução do modo de endereçamento indireto. Fonte: Adaptado de Stallings, 2003. Uma vantagem deste método é que o endereço e a quantidade memória que pode ser gerenciada, já que uma célula da memória principal contém mais bits que o campo operando da instrução, e ainda o endereço pode se estender para outras células de memória principal. A desvantagem que mais se destaca nesse modo de endereçamento é ser mais lenta, por requerer dois ciclos de memória principal, uma para ler o apontador e outra para ler o operando. 6 ENDEREÇAMENTO DE REGISTRADOR Nesse modo de endereçamento o campo operando contém uma referência a um registrador que contém o operando. Conforme Stallings (2003), o campo de registrador tem de 3 a 4 bits, assim pode referenciar um total de 8 a 16 registradores. As suas vantagens são: possuir um campo pequeno de referência ao registrador e não usa referência de memória principal, conforme a Figura 5. Figura 5. Instrução do modo de endereçamento de registrador. Fonte: Adaptado de Stallings, 2006. 1761

Segundo Tanenbaum (2006), este modo de endereçamento é importante devido aos endereços curtos e muito comum em computadores. Os compiladores, em sua grande maioria, fazem todos os esforços para determinar quais variáveis serão acessadas e as colocam nos registradores. Uma estratégia para o bom desempenho computacional é manter os valores armazenados nos registadores o máximo de tempo o possível para diferentes operações, evitando chamadas de operandos na memória principal. Uma desvantagem citada por Stallings (2003) é que no endereçamento por registrador o espaço do campo operando é limitado. 7 ENDEREÇAMENTO INDIRETO VIA REGISTRADOR No endereçamento indireto via registrador, o campo operando se refere a um registrador que contém o endereço do dado na memória principal. Portanto esse modo é análogo ao modo de endereçamento indireto, pois como afirmam Null e Lobur (2010), a única diferença é que o campo de endereço se refere a um registrador e não a posição de memória, com isso as vantagens e desvantagens destes modos são semelhantes. Entretanto, o endereçamento indireto via registrador requer um acesso a menos à memória principal que o endereçamento indireto (STALLINGS, 2003), conforme exemplo da Figura 6. Figura 6. Instrução do modo de endereçamento indireto via registrador. Fonte: Adaptado de Stallings, 2003. Segue o exemplo de Bertogna (2015), neste tipo de endereçamento o dado é acessado na posição de memória apontada por um dos registros R 0 ou R 1 1762

especificado na instrução, como no exemplo a seguir move para A o conteúdo da posição de memória apontada por R 1 : MOV A,@R1. 8 ENDEREÇAMENTO POR DESLOCAMENTO Segundo Stallings (2003), o endereçamento por deslocamento é um método muito poderoso porque combina a capacidade do endereçamento direto com o endereçamento indireto via registrador. No modo de endereçamento por deslocamento, o endereçamento do dado é determinado pela soma de dois operandos, conforme é ilustrado no exemplo abaixo pela Figura 7. Figura 7. Instrução no modo de endereçamento por deslocamento. Fonte: Adaptado Stallings, 2003. Recapitulando o que foi dito na primeira seção, os operandos podem ser implícitos baseados no C. Op. Segundo Stallings (2003), há três usos comuns do endereçamento por deslocamento: (i) endereçamento relativo: também conhecido como endereçamento por descolamento ao contador de instrução. Com esse conceito a instrução faz uma referência implícita ao registrador PC (Program Counter, em português significa contador de programa). Esse registrador se refere a próxima instrução a ser executada. O valor do campo operando é somado ao registrador PC produzindo o endereço do dado na memória principal. (ii) endereçamento baseado em registrador: nesse conceito de endereçamento o registrador referenciado pela instrução indica um segmento de memória a ser usado e o outro operando indica qual a célula deste segmento a instrução está se referindo. Dessa forma, uma parte da memória principal é vista como um arranjo 1763

ordenado de dados, uma estrutura ou registro, e alterando o valor do registrador de base altera-se o arranjo referido, mas a mesma instrução efetua a operação no novo arranjo. (iii) indexação: o campo de operando da instrução faz referência ao bloco de memória e o registrador indica o descolamento a partir do início do bloco. Em outras palavras, embora o funcionamento do modo de endereçamento seja o mesmo, a maneira que o programador o conceitua é diferente. Essa ideia é ótima para efetuar uma mesma operação sobre um grande conjunto de dados dentro de um laço, usando um registrador para controlar o número de iterações, a mesma instrução vai se referir a dados que estão na sequência na memória principal. Segundo Null e Lobur (2010), a vantagem do endereçamento baseado em registrador e indexação é sua utilidade em acessar elementos de arrays e caracteres em strings. Os registradores usados nesses modos de endereçamento podem ser de propósito geral ou específico de indexação com referência implícita. 9 CONSIDERAÇÕES FINAIS Quadro 1. Demonstrativo das características dos modos de endereçamento. Fonte: Baseado em Monteiro (2012) e Stallings (2003). Este artigo científico apresentou as premissas para o uso dos modos de endereçamento de memória por intermédio de um levantamento bibliográfico, com o 1764

foco em apenas seis principais modos de endereçamento, sendo que não foram discutidas abordagens mais específicas como o modo por pilha. Foram destacados também conjuntos de instruções associados aos processadores. Para trabalhos futuros, podem-se aprofundar os conceitos de endereçamento de memória, visando aplicação dessas abordagens em arquiteturas específicas de microcontroladores. O Quadro 1 apresenta uma comparação entre os seis principais modos de endereçamento, servindo como um breve resumo da pesquisa. Esse esquema evidencia uma das principais contribuições do levantamento bibliográfico que foi apontar definição, vantagens e desvantagens para cada um dos modos de endereçamento. REFERÊNCIAS BERTOGNA, Eduardo. Microcontroladores 8051: Teoria e Prática. Curitiba: Editora do Autor, 2015. LEITE, Mário. Técnicas de Programação: Uma Abordagem Moderna. Rio de Janeiro: Brasport, 2006. MONTEIRO, Mario. Introdução à Organização de Computadores. 5. ed., Rio de Janeiro: LTC, 2012. NULL, Linda; LOBUR, Julia. Princípios Básicos de Arquitetura e Organização de Computadores. 2. ed., Porto Alegre: Artmed, 2010. STALLINGS, William. Arquitetura e Organização de Computadores. 5. ed., São Paulo: Prentice-Hall, 2003. TANENBAUM, Andrew. Organização Estruturada de Computadores. 5. ed., Rio de Janeiro: Prentice-Hall, 2006. 1765