Buscar

8-conjunto-de-instrucoes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Conjunto de Instruções
 
SST
Moreira, Marcelo dos Santos
Conjunto de Instruções / Marcelo dos Santos Moreira
Ano: 2020
nº de p. : 12
Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados.
Conjunto de Instruções
3
Apresentação
Neste momento, estudaremos os modos de endereçamento em áreas de memória 
e registradores, como o modo direto, indireto, por registrador, indexado, modo base 
mais deslocamento. Em um segundo momento, compreenderemos a representação 
de dados, seus tipos, dados numéricos, dados não numéricos e dados lógicos. Por 
fim, compreenderemos o conjunto de instruções e os tipos de instruções para serem 
interpretadas e executadas pelo processador.
Modos de endereçamento
• Modo Direto
No modo direto, o valor binário armazenado no campo “operando da instrução” 
representa o endereço da memória em que se localiza o dado. Atualmente, o modo 
direto é o que é mais utilizado. O endereço pode ser tanto uma célula, que armazena 
o dado, como pode ser o endereço da célula inicial. 
Vale ressaltar a simplicidade de acesso do método, haja vista a necessidade de 
apenas uma única referência à memória principal para se executar a busca do dado. 
Porém, o método direto é mais lento do que o método imediato devido à necessidade 
de referenciamento à memória.
Para os casos de um dado que tem o seu valor variado em cada execução do 
programa, a recomendação é armazená-lo na memória principal e, a partir disso, o 
programa passa a utilizá-lo por meio do modo direto, ou seja, a instrução indicará 
apenas o endereço onde o dado se localiza.
Com relação às desvantagens do modo direto, podemos citar a limitação de 
memória a ser usada, conforme o tamanho do campo. Ou seja, considere um campo 
com tamanho de 12 bits. No modo direto, somente as células de endereçamento de 
0 a 4095 (sistema decimal) poderão ser acessadas – sistema binário 000000000000 
a 111111111111.
4
As arquiteturas de processadores atuais têm o espaço de 
endereçamento que varia de 32 bits a 4GB, o que torna inviável a 
criação de instruções com um campo operando dessa magnitude. 
No sentido de se evitar tal situação, basta reduzir o tamanho do 
campo operando por meio do modo de endereçamento base mais 
deslocamento.
Saiba mais
• Modo Indireto
No modo indireto, o valor binário do campo operando representa o endereço de uma 
célula, porém o conteúdo dela não representa o valor de um dado, mas um outro 
endereço de memória cujo conteúdo é o valor do dado.
Dessa forma, o modo indireto é caracterizado pelo duplo endereçamento de acesso a 
um dado, necessitando de múltiplos ciclos de memória para buscar o dado. Para que 
isso aconteça, esse método utiliza um ponteiro que aponta para o endereço do dado.
Com esse recurso, o problema de limitação do valor de endereçamento de dado 
descrito no modo direto é sanado, haja vista que o endereço armazenado na 
memória ocupará o tamanho necessário para a representação do maior endereço da 
memória principal da arquitetura computacional utilizada.
De modo similar ao direto, o modo indireto traz consigo, como desvantagem, a 
grande quantidade de ciclos de memória requerida pelo computador para completar 
o ciclo de instrução. Isso acontece porque, para acessar um dado, é necessário que
o processador efetue dois acessos à memória: um para buscar o endereço do dado;
e outro para efetivar a busca do dado.
Memória computacional.
Fonte: Plataforma Deduca (2020).
5
• Modo de Endereçamento por Registrador
Similar aos modos diretos e indiretos, o método de endereçamento por registrador se 
diferencia dos métodos anteriores, no que se refere à célula de memória referenciada 
na instrução, a qual é substituída por um dos registradores do processador. Dessa 
forma, o endereço mencionado na instrução passa a ser o endereço de um dos 
registradores e não uma célula da memória principal, como nos métodos anteriores.
Esse artifício resulta em um menor número de bits necessários ao endereçamento 
dos registradores, pois eles existem em muito menor quantidade de células de 
memória e, consequentemente, o tamanho geral da instrução é reduzido. Também 
como vantagem do método de endereçamento por registrador, podemos citar o 
próprio emprego do dado, pois ele passa a ser armazenado em um registrador que 
tem um acesso muito mais rápido do que o da memória.
• Modo Indexado
Ao se executar um programa, pode ser que haja a necessidade de se manipular 
endereços de acesso a tipos específicos de dados. Esses endereços são 
denominados “ponteiros” desses tipos específicos de dados.
Considere o acesso aos elementos de um vetor, os quais são armazenados 
sequencialmente na memória. O ponteiro (endereço) faz referência à sua localização 
e ele é alterado para indicar o elemento desejado. Essa descrição demonstra que a 
obtenção do endereço de um dado (nesse caso, elemento do vetor) se relaciona com 
o seu índice de forma unívoca.
Assim, o endereço do dado é obtido pela soma do valor do campo operando – valor 
fixo para todos os elementos do vetor – e de um valor armazenado em um dos 
registradores do processador, o qual varia para o acesso de cada elemento do vetor.
• Modo Base Mais Deslocamento
O modo base mais deslocamento se assemelha ao modo indexado, pois o endereço 
de acesso a uma célula de memória é obtido pela soma de dois valores: o valor 
do campo apropriado da instrução – denominado “base” – e o outro valor de um 
determinado registrador – denominado “registrador base”.
Na prática, a diferença entre os dois modos está na aplicação, no propósito e na 
forma de implementação. O valor que deverá ser mantido fixo é o do registrador 
base, variando apenas o valor do campo deslocamento de cada instrução, 
diferentemente do modo indexado, no qual o que se altera é o conteúdo do 
6
registrador. Esse modo não exige que o campo operando tenha um tamanho 
correspondente à capacidade total de endereçamento da memória principal, 
bastando simplesmente que o endereço desejado seja obtido pela soma de um valor 
existente em um dos registradores da CPU com um valor contido na instrução. Daí o 
nome base mais deslocamento, devido à utilização de dois campos na instrução, os 
quais substituem o campo operando: 
• um campo com o endereço de um registrador – base;
• um campo com um valor denominado “deslocamento” – contendo um valor 
relativo, o qual se desloca em relação à primeira instrução.
Por fim, ao compararmos os modos indexado e base mais deslocamento, chegamos à 
conclusão de que o processo de cálculo do efetivo endereço de acesso é o mesmo. 
Representação dos dados
A organização dos computadores está diretamente relacionada à forma como eles 
representam números, caracteres e informações de controle. Também, padrões 
e convenções estabelecidos ao longo dos anos determinam certos aspectos da 
organização do computador. 
A unidade mais básica de informação utilizada por um computador digital é 
denominada bit, representando a contração da língua inglesa binarydigit – ou dígito 
binário: 0 ou 1.
Na prática, 0 ou 1 representa “ligado” ou “desligado” em um circuito computacional. 
Em 1964, os projetistas do computador mainframe IBM System/360 estabeleceram 
uma convenção de processamento de dados, usando grupos de 8 bits como a 
unidade básica de armazenamento de computador endereçável. Nominaram essa 
coleção de 8 bits de byte.
Palavras em um computador consistem em dois ou mais bytes adjacentes que, por 
vezes, são endereçados e quase sempre são manipulados coletivamente. O tamanho 
da palavra representa o tamanho dos dados, que é tratado com mais eficiência por 
uma arquitetura específica.
7
Bits e bytes.
Fonte: Plataforma Deduca (2020).
As palavras podem ter 16 bits, 32 bits, 64 bits ou qualquer outro tamanho que faça 
sentido no contexto da organização de um computador. Os bytes de oito bits podem 
ser divididos em duas metades de 4 bits, as quais são denominadas “nibbles”. Como 
cada bit de um byte tem um valor dentro de um sistema de numeraçãoposicional, 
o nibble que contém o dígito binário de menor valor é chamado de nibble de baixa 
ordem, e a outra metade de nibble, de alta ordem.
• Tipos de Dados
Antes de apresentarmos os tipos de dados, vale conceituar o nível ISA – Instruction 
Set Architecture ou Arquitetura do Conjunto de Instruções. Trata-se da interface 
entre software e hardware que representa o nível mais próximo ao hardware em que 
um usuário pode programar.
Como vimos, os dados em um sistema computacional têm de ser representados na 
forma binária. No nível ISA, são utilizados vários tipos diferentes de dados. Vamos 
subdividi-los em tipos de dados numéricos e não numéricos.
• Dados Numéricos
O principal tipo de dados numéricos são os dados numéricos inteiros, podendo ter 
muitos comprimentos – geralmente 8, 16,32 e 64 bits. Números inteiros quantificam 
coisas: quantidade de funcionários de uma empresa, quantidade de itens em estoque 
etc. Identificam coisas: número do registro de um automóvel no departamento de 
trânsito, número do seguro social de um cidadão etc. Esses números inteiros são 
armazenados pelos computadores na forma binária. Computadores suportam tanto 
8
números inteiros sem sinal como números inteiros com sinal. Em se tratando de um 
número inteiro sem sinal, não existe o bit de sinal e, consequentemente, todos os bits 
contêm dados.
Já na necessidade de se expressar um número não inteiro – por exemplo 2,8 – são 
utilizados números de ponto flutuante, os quais podem ter o comprimento de 32, 64 
ou 128 bits.
• Dados Não Numéricos
Nos dias atuais, a necessidade de processamento de dados exige que os 
computadores modernos sejam utilizados também para aplicações não numéricas: 
e-mail, navegação web, edição de imagens digitais, criação e reprodução de 
multimídias. 
Essas aplicações demandam outros tipos de dados e a clara importância dos 
caracteres, dos quais destacamos os padrões ASCII – American Standard Code 
for Information Interchange ou Padrão Americano de Código para o Intercâmbio de 
Informações – e o Unicode. Ambos os padrões suportam caracteres de 7 bits e 16 
bits, respectivamente.
O código ASCII não foi criado especificamente para uso em 
computadores. Ele foi criado para ser utilizado por telégrafos e 
apresenta apenas sete bits, possibilitando, no máximo, 128 valores 
diferentes.
Curiosidade
• Dados Tipo Lógico
Vale destacar a importância dos dados do tipo lógico, conhecidos como valores 
booleanos, que podem assumir um de dois valores: verdadeiro – bit 1 – ou falso 
– bit 0. Com os dados do tipo lógico, é possível realizar uma série de operações 
utilizando-se, para isso, as simbologias AND, OR e NOT, com a tabela-verdade 
(PAIXÃO, 2014). Nos quadros a seguir, observe as suas aplicações.
9
Aplicação do operador lógico AND.
Variável 1 Variável 1 Resultado
Operador and Verdadeiro Verdadeiro Verdadeiro
Resulta em um valor 
verdadeiro se os dois 
valores de entrada 
da operação forem 
verdadeiros.
Verdadeiro Falso Falso
Falso Verdadeiro Falso
Falso Falso Falso
Fonte: Adaptado de Monteiro (2007, p. 211-215).
Aplicação do operador lógico OR.
Variável 1 Variável 1 Resultado
Operador or Verdadeiro Verdadeiro Verdadeiro
Resulta um valor 
verdadeiro se ao 
menos um dos dois 
valores de entrada 
da operação for 
verdadeiro.
Verdadeiro Falso Verdadeiro
Falso Verdadeiro Verdadeiro
Falso Falso Falso
Fonte: Adaptado de Monteiro (2007, p. 211-215).
Aplicação do operador lógico NOT.
Variável 1 Resultado
Operador not Verdadeiro Falso Verdadeiro
Tem por função 
inverter os valores de 
entrada.
Falso Verdadeiro
Fonte: Adaptado de Monteiro (2007, p. 211-215).
Como pôde ser observado, os operadores lógicos podem ser utilizados de diferentes 
formas em programas de computador, pois, por meio das tabelas-verdade, 
apresentam todas as possibilidades de combinação dos seus operadores.
10
Conjunto de Instruções
Todo computador tem como base de funcionamentos ordens simples e básicas: 
(1) efetuar a soma de dois números; (2) mover um dado de um local para outro (3) 
incrementar 1 ao valor de um número etc. As referidas ordens são simples porque o 
hardware não é capaz de manipular diretamente ordens mais complexas. Tais ordens 
são transmitidas ao processador para serem interpretadas e executadas por meio de 
sinais elétricos representados pelos bits 1 ou 0. Instruções de máquinas e todos os 
processadores são fabricados contendo em seu interior esse conjunto de instruções. 
Pense em um game que realiza diversas funções durante a sua 
execução: uma personagem pode correr para frente, correr para 
trás, andar para frente, andar para trás, pular, deitar e atirar. 
Reflita
Para a execução de tais funções, os desenvolvedores projetaram um conjunto 
de instruções primitivas. Dessa maneira simples, pudemos exemplificar o 
funcionamento dos computadores. Por meio de um conjunto básico de instruções 
primitivas, um programador pode combiná-las de diferentes maneiras, de modo a 
obter diferentes resultados. 
Um computador, com o seu conjunto de instruções de máquina (primitivas), pode ser 
utilizado para o desenvolvimento de textos, planilhas, para processar e tratar imagens, 
bem como realizar o pagamento de uma conta por meio do internet banking.
• Tipos de Instruções
A maioria das instruções opera sobre dados e outras não, como comenta 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), podem ser catalogadas em:
11
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 aquelas 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). Já para as operações lógicas 
booleanas, Stallings (2002, p. 344) comenta que “as instruções lógicas 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. Já 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).
Já 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.
Fechamento
Chegamos ao final do estudo sobre conjunto de instruções e compreendemos 
a importância e os tipos de modos de endereçamento de memórias tanto para 
acesso a memórias RAM e para processadores. Na sequência, compreendemos a 
representação de números, caracteres e informações de controle, de acordo com 
padrões e convenções estabelecidos ao longo dos anos e que determinam certos 
aspectos da organização do computador. Por fim, estudamos os tipos de conjuntos 
de instruções utilizadas pelo processador para interpretar, executar, armazenar, 
movimentar e controlar dados.
12
Referências
NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organização de 
Computadores. Porto Alegre: Bookman, 2010.MONTEIRO, M. A. Introdução à organização de computadores. Rio de Janeiro: LTC, 
2007. ISBN: 978-85-216-1973-4.
PAIXÃO, R. R. Arquitetura de computadores: PCs. São Paulo: Érica, 2014. ISBN: 
9788536518848.
STALLINGS, W. Arquitetura e Organização de Computadores: projeto para o 
desempenho. São Paulo: Prentice Hall, 2002.

Outros materiais