Escolar Documentos
Profissional Documentos
Cultura Documentos
Conjunto de Instruções
Conteúdos
● Conjunto de Instruções
– Formato de uma instrução
– Modos de endereçamento
– Linguagem Assembly
Introdução
Anteriormente já vimos que os
processadores funcionam através de
ordens simples e básicas tais como somar
dois números, mover um dado de um
local para outro ou incrementar o valor
de um número.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
4
Disciplina: Arquitetura de Computadores - ARQA1
Introdução
Estas “ordens” são transmitidas ao
hardware para serem interpretadas e
executadas por meio de sinais elétricos (bit
0 ou bit 1), ou seja, por um conjunto de
bits que pode ser chamado de instrução
de máquina.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
5
Disciplina: Arquitetura de Computadores - ARQA1
Introdução
Todo processador já é fabricado contendo
um grupo destas instruções, que são
chamadas de blocos de conjunto de
instruções (instruction set).
Introdução
Quando um programador/usuário deseja
resolver um problema, ele elabora um
programa em uma linguagem próxima de
seu entendimento, sua lógica (alto nível),
como por exemplo Pascal, C ou Java.
Introdução
No entanto o processador só consegue
executar operações simples, desta forma é
necessário um elemento mediador capaz
de interpretar as instruções de alto nível
e traduzi-las para instruções de máquina
(baixo nível)
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
8
Disciplina: Arquitetura de Computadores - ARQA1
Introdução
Exemplo, considere uma máquina, uma
especie de robô com braços mecânicos
capazes de se movimentar para cima e
para baixo, e girar em sentido horário ou
anti-horário.
Introdução
O conjunto de instruções desta máquina foi
identificado com números de 0 a 7 e pode
ser visto na Tabela 8.1
Introdução
Introdução
Em alto nível um programa poderia
especificar que em determinado instante o
robô deve levantar o braço direito 12 cm e
depois aparafusar um objeto na
perpendicular ao chão por 10 cm.
Introdução
No entanto, em baixo nível o processador
desta máquina teria de converter estas
ordens em instruções primitivas que o
sistema reconhece, ficando algo parecido
com isso:
Introdução
Contador A = 1
Contador B = 100
Enquanto contador A < 90
Iniciar
Instrução cod. 0
Contador A = Contador A + 1
Fim
Enquanto contador B < 100
Iniciar
Instrução cod. 2
Contador B = Contador B + 1
Fim Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
14
Disciplina: Arquitetura de Computadores - ARQA1
Introdução
O programa mostrado é bastante
incompleto, porém tem como finalidade
mostrar a diferença entre uma instrução
primitiva e comandos complexos de
programas de alto nível.
DE MÁQUINA
Modos de Endereçamento
MODOS DE ENDEREÇAMENTO
Modos de Endereçamento
No capítulo 6 (e na aula 5, 27/03/2017)
discutimos sobre o formato básico de uma
instrução de máquina e sobre o ciclo de
execução das mesmas, concluindo que:
Modos de Endereçamento
a) O endereçamento de uma instrução é
sempre realizado através do valor
armazenado no contador de instrução
(CI). Todo ciclo de instrução é iniciado
pela transferência da instrução para o RI
(usando o endereço contido em CI).
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
24
Disciplina: Arquitetura de Computadores - ARQA1
Modos de Endereçamento
b) Toda instrução consiste em uma ordem
codificada (código de operação), para o
processado executar uma operação
qualquer. No contexto da interpretação
de uma instrução, o dado pode ser um
valor numérico, um caractere ou um
endereço. Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
25
Disciplina: Arquitetura de Computadores - ARQA1
Modos de Endereçamento
c) A localização do(s) dados(s) pode
estar explicitamente indicada na própria
instrução por um ou mais conjuntos de
bits, denominados campo do operando,
ou implicitamente (quando o dado
estiver em um registrador para esse fim)
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
26
Disciplina: Arquitetura de Computadores - ARQA1
Modos de Endereçamento
Dentre os diversos modos de
endereçamento existentes para os
processadores destacam-se:
● Imediato
● Direto
Modos de Endereçamento
● Indireto
● Por registrador
● Indexado
● Base mais deslocamento
Modos de Endereçamento
A existência de muitos modos de
endereçamento é típica de arquiteturas
CISC (conjunto complexo de instruções).
Modos de Endereçamento
Nem todos os estes modos estão incluídos
nos processadores atuais, mas serão
abordados para compreensão do processo
evolutivo da tecnologia.
Modos de Endereçamento
Modo Imediato:
Modos de Endereçamento
Modo Direto:
Modos de Endereçamento
Modo Indireto:
Modos de Endereçamento
Modo Indireto:
Modos de Endereçamento
Por registrador:
Modos de Endereçamento
Por registrador:
Modos de Endereçamento
Por registrador:
Modos de Endereçamento
Modo Indexado:
Modos de Endereçamento
Modo Indexado:
Modos de Endereçamento
Modo base mais deslocamento:
Modos de Endereçamento
Modo base mais deslocamento:
Modos de Endereçamento
Modo base mais deslocamento:
Modos de Endereçamento
Modo base mais deslocamento:
Modos de Endereçamento
Modo base mais deslocamento:
Linguagem Assembly
LINGUAGEM ASSEMBLY
Linguagem Assembly
Como já visto, um programa executável
diretamente pelo hardware deve estar
armazenado na memória com uma imensa
quantidade de 0s e 1s. Esta é a
linguagem de máquina.
Linguagem Assembly
Nos primórdios da computação, essa era a
linguagem utilizada pelos programadores;
o Altair, primeiro microcomputador, que
utilizava o processador Intel 8080 podia ser
programado em binário diretamente em
seu painel frontal.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
47
Disciplina: Arquitetura de Computadores - ARQA1
Linguagem Assembly
Ainda hoje a linguagem de máquina se
mantêm presente, como por exemplo em
situações de erro na execução de alguma
programa onde uma tela azul é
apresentada com um código (geralmente
hexa) que representa o endereço da falha.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
48
Disciplina: Arquitetura de Computadores - ARQA1
Linguagem Assembly
No entanto, a linguagem de máquina
embora seja a forma mais direta de se
utilizar o hardware é a mais complicada
e difícil para o programador.
Linguagem Assembly
Para que a tarefa de usar instruções se
tornasse um pouco mais fácil foi definido
que estas instruções seriam expressas
como algumas palavras como ADD, SUB,
MOV etc. Pois estas fazem mais sentido
para nós humanos.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
50
Disciplina: Arquitetura de Computadores - ARQA1
Linguagem Assembly
Assim desenvolveu-se uma linguagem de
símbolos (e não de números) alfabéticos
denominada linguagem de montagem
(em inglês Assembly Language)
Linguagem Assembly
Linguagem Assembly
Em geral uma linha de instrução assembly
é composta de quatro partes ou campos:
● Rótulo (label)
● Sigla (mneumonic)
● Operandos (operands)
● Comentários (comment)
Linguagem Assembly
Em geral uma linha de instrução assembly
é composta de quatro partes ou campos:
Linguagem Assembly
Rótulo (label): indica um endereço
significativo no programa, como por
exemplo o endereço de início ou
endereços de desvio (loop).
É um campo opcional.
Linguagem Assembly
Sigla: contém o mnemônico predefinido
adequadamente para simbolizar a
correspondente operação. Alguns
exemplos são ADD, SUB, LDA, etc. Na
realidade, este é o código da operação da
instrução.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
56
Disciplina: Arquitetura de Computadores - ARQA1
Linguagem Assembly
Operando(s): onde são inseridos os
símbolos representativos dos endereços
de memória ou dos registradores
utilizados pela instrução para armazenar
os respectivos dados referidos pela
instrução.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
57
Disciplina: Arquitetura de Computadores - ARQA1
Linguagem Assembly
Comentários: é um campo opcional,
ignorado durante o processamento. Serve
apenas para auxiliar o entendimento do
programa, de modo idêntico ao que se faz
em programas escritos em linguagens de
alto nível.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
58
Disciplina: Arquitetura de Computadores - ARQA1
Linguagem Assembly
Programas escritos em Assembly não
são diretamente executáveis porque o
hardware não entende símbolos, mas sim
binários, desta forma há a necessidade de
se utilizar um programa cujo propósito é
converter as instruções...
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
59
Disciplina: Arquitetura de Computadores - ARQA1
Linguagem Assembly
assembly em correspondentes instruções
de máquina, os endereços simbólicos (A,
B, C, X) em endereços físicos de memória.
Linguagem Assembly
Este programa denomina-se montador
(Assembler) e é específico do processador
em que ele será executado (e do sistema
operacional também).
Linguagem Assembly
Linguagem Assembly
Linguagem Assembly
A linguagem assembly já foi muito utilizada,
porém hoje isso já não ocorre. A
complexidade de entendimento não mais
justifica a velocidade dos programas
escritos na linguagem assembly.
Linguagem Assembly
Linguagens mais poderosas como
linguagem C ou C++ permitem que os
programadores escrevam programas mais
claros, estruturados e menores, como
linguagens de alto nível permitem.
Dúvidas?
Perguntas?