Você está na página 1de 65

1

Disciplina: Arquitetura de Computadores - ARQA1

Conjunto de Instruções

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
2
Disciplina: Arquitetura de Computadores - ARQA1

Conteúdos
● Conjunto de Instruções
– Formato de uma instrução
– Modos de endereçamento
– Linguagem Assembly

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
3
Disciplina: Arquitetura de Computadores - ARQA1

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).

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
6
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
7
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
9
Disciplina: Arquitetura de Computadores - ARQA1

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

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
10
Disciplina: Arquitetura de Computadores - ARQA1

Introdução

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
11
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
12
Disciplina: Arquitetura de Computadores - ARQA1

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:

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
13
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
15
Disciplina: Arquitetura de Computadores - ARQA1

Formato de uma Instrução

FORMATO DE UMA INSTRUÇÃO

DE MÁQUINA

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
16
Disciplina: Arquitetura de Computadores - ARQA1

Formato de uma Instrução


Programas complexos são executados
internamente como instruções bastante
simples combinadas das formas mais
diversas, obtendo assim, diferentes
resultados.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
17
Disciplina: Arquitetura de Computadores - ARQA1

Formato de uma Instrução


No entanto estas operações simples
devem possuir alguns elementos
necessários para sua execução, como,
quais dados serão manipulados e qual a
operação que deverá ser executada.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
18
Disciplina: Arquitetura de Computadores - ARQA1

Formato de uma Instrução


Desta forma as instruções são formadas
por basicamente duas coisas: código da
operação e operandos.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
19
Disciplina: Arquitetura de Computadores - ARQA1

Formato de uma Instrução


O código da operação (abrevia-se C. Op.)
indica ao processador o que deve fazer e
como fazer.

O campo operando (abrevia-se Op.) indica


em qual dado ou dados a operação será
realizada.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
20
Disciplina: Arquitetura de Computadores - ARQA1

Formato de uma Instrução


A escolha do formato das instruções, a
largura de cada campo e de seu
conteúdo variam conforme a arquitetura
do processador.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
21
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento

MODOS DE ENDEREÇAMENTO

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
22
Disciplina: Arquitetura de Computadores - ARQA1

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:

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
23
Disciplina: Arquitetura de Computadores - ARQA1

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

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
27
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
● Indireto
● Por registrador
● Indexado
● Base mais deslocamento

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
28
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
A existência de muitos modos de
endereçamento é típica de arquiteturas
CISC (conjunto complexo de instruções).

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
29
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
30
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo Imediato:

É o mais simples e rápido de obter um


dado, pois o dado é colocado no campo
de operando da instrução.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
31
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo Direto:

Neste modo o valor binário do campo


operando indica o endereço da memória
onde se localiza o dado.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
32
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo Indireto:

Neste modo o valor binário do campo


operando representa um endereço de
memória cujo o valor é um outro
endereço que contém o dado.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
33
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo Indireto:

Este modo têm um endereçamento duplo,


sendo o endereço intermediário conhecido
como ponteiro, pois ele indica (aponta) a
localização do dado

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
34
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Por registrador:

Este método é semelhante aos modos


direto e indireto, exceto que a palavra de
memória referenciada na instrução é
substituída por um registrador.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
35
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Por registrador:

Este modo possui duas vantagens, sendo a


primeira que são necessários menos bits
para endereçar os registradores, visto que
eles existem em menor quantidade em
relação à memória.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
36
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Por registrador:

E a segunda é que os registradores tem o


tempo de acesso muito menor (mais
rápidos) do que o da memória.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
37
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo Indexado:

Este modo é dedicado a situações em que


é necessário o acesso a tipos especiais de
dados, como arrays por exemplo.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
38
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo Indexado:

Nesta situação o endereço do operando


aponta para um array armazenado em
memória e um registrador especial
(geralmente chamado registrador de índice)
guarda o índice do dado desejado.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
39
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo base mais deslocamento:

Este modo de endereçamento tem


características semelhantes ao modo
indexado, visto que o endereço de acesso a
uma célula é obtido através da soma de dois
valores.
Prof. Me. Eder Pansani
E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
40
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo base mais deslocamento:

Um está inserido do campo operando da


instrução (chamado deslocamento) e o
outro em um registrador (chamado de
registrador base).

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
41
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo base mais deslocamento:

A diferença entre eles está na aplicação e


no propósito do método. Enquanto no
anterior o operando era fixo e o registrador
tinha seu valor alterado.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
42
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo base mais deslocamento:

Aqui o registrador tem seu valor fixo


enquanto o operando é alterado de acordo
com a execução do programa.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
43
Disciplina: Arquitetura de Computadores - ARQA1

Modos de Endereçamento
Modo base mais deslocamento:

Este modo acarreta uma redução do


tamanho das instruções (e, com isso,
economiza memória) bem como facilita o
processo de relocação dinâmica.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
44
Disciplina: Arquitetura de Computadores - ARQA1

Linguagem Assembly

LINGUAGEM ASSEMBLY

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
45
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
46
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
49
Disciplina: Arquitetura de Computadores - ARQA1

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)

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
51
Disciplina: Arquitetura de Computadores - ARQA1

Linguagem Assembly

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
52
Disciplina: Arquitetura de Computadores - ARQA1

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)

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
53
Disciplina: Arquitetura de Computadores - ARQA1

Linguagem Assembly
Em geral uma linha de instrução assembly
é composta de quatro partes ou campos:

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
54
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
55
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
60
Disciplina: Arquitetura de Computadores - ARQA1

Linguagem Assembly
Este programa denomina-se montador
(Assembler) e é específico do processador
em que ele será executado (e do sistema
operacional também).

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
61
Disciplina: Arquitetura de Computadores - ARQA1

Linguagem Assembly

Figura 8.25 - Exemplo de um programa de


linguagem de montagem (Assembly) do
processador Intel 80486

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
62
Disciplina: Arquitetura de Computadores - ARQA1

Linguagem Assembly

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
63
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
64
Disciplina: Arquitetura de Computadores - ARQA1

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.

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br
65
Disciplina: Arquitetura de Computadores - ARQA1

Dúvidas?

Perguntas?

Prof. Me. Eder Pansani


E-mail: epansani@gmail.com
10 de abril de 2017 http://ederpansani.com.br

Você também pode gostar