Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

1
Fundamentos de Arquiteturas de Computadores
UCP 
Execução de Instruções
Profa. Débora Christina Muchaluat Saade
debora@midiacom.uff.br
Departamento de Ciência da Computação - UFF
http://www.midiacom.uff.br/debora
9
Fundamentos de Arquiteturas de Computadores
Nosso Processador Hipotético
…
32 bits
Endereço 
de 16 bits
216 endereços
0
1
2
216 - 1
Memória Principal
00000000000..000 0
1
2
UCP
Conjunto de 8 Registradores de Dados
32 bits
3
4
5
6
7
UCP
Registradores de Controle
• PC – Program Counter – Contador de Instruções – 16 bits
• armazena o endereço da próxima instrução em memória
• IR – Instruction Register – Registrador de Instrução – 32 bits
• armazena a instrução a ser executada
10
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem
Departamento de Ciência da Computação - UFF
11
Fundamentos de Arquiteturas de Computadores
Nosso Processador Hipotético
ü O conjunto de instruções desta máquina é
composto de 7 instruções:
ü Linguagem de Montagem
• add regA regB destreg
• addi regA regB imediato
• lw regA regB deslocamento
• sw regA regB deslocamento
• beq regA regB deslocamento
• halt
• noop
13
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem - SOMA
ü add regA regB destreg
• soma o conteúdo do registrador regA com o conteúdo de 
regB e armazena resultado no registrador destreg
ü Programa em C:
• a=b+c
ü Programa em Linguagem de montagem:
• add b c a
ü Supondo variável a alocada para registrador 1, 
variável b alocada para registrador 2, variável c 
alocada no registrador 3
• add 2 3 1
15
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem - SOMA
ü addi regA regB imediato
• soma o conteúdo do registrador regA com o valor imediato e 
armazena resultado no registrador regB
• regB = regA + imediato
ü Programa em C:
• i=j+5
ü Programa em Linguagem de montagem:
• addi j i 5
ü Supondo variável i alocada para registrador 1, 
variável j alocada para registrador 2
• addi 2 1 5
17
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem – LEITURA DA MEMÓRIA
ü lw regA regB deslocamento
• carrega no registrador regB o conteúdo da palavra da 
memória cujo endereço é a soma do conteúdo do 
registrador regA com o valor deslocamento
Endereço 
de 16 bits
216 endereços
…
32 bits 0
1
2
216 - 1
Memória Principal
Endereço base => regA
regA + deslocamento
…deslocamento
regB
21
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem – ESCRITA EM MEMÓRIA
ü sw regA regB deslocamento
• armazena o conteúdo do registrador regB na palavra da 
memória cujo endereço é a soma do conteúdo do 
registrador regA com o valor deslocamento
Endereço 
de 16 bits
216 endereços
…
32 bits 0
1
2
216 - 1
Memória Principal
Endereço base => regA
regA + deslocamento
…deslocamento
regB
24
Fundamentos de Arquiteturas de Computadores
Etapa 1 – LEITURA DA MEMÓRIA
ü Programa em C
• A[12]=h+A[8]
ü Programa em linguagem de montagem, supondo h alocada no 
registrador 2 e endereço inicial do vetor A no registrador 4 
(lw regA regB deslocamento):
• lw 4 1 8
• add 1 2 1
• sw 4 1 12
Endereço 
de 16 bits
216 endereços
…
32 bits 0
1
2
216 - 1
Memória Principal
Reg 4 
end. A[0]
endereço do A[8]
…deslocamento=8
Reg 1 = A[8]
25
Fundamentos de Arquiteturas de Computadores
Etapa 2 – SOMA
ü Programa em C
• A[12]=h+A[8]
ü Programa em linguagem de montagem, supondo h alocada no 
registrador 2 e endereço inicial do vetor A no registrador 4:
• lw 4 1 8 - lê A[8] da memória e armazena no reg 1
• add 1 2 1 - soma reg 1(A[8]) e reg 2(h)
• sw 4 1 12 - escreve na memória para atualizar o A[12]
ü Lembrete:
• add regA regB destreg
– soma o conteúdo do registrador regA com o conteúdo de regB e 
armazena resultado no registrador destreg
28
Fundamentos de Arquiteturas de Computadores
Etapa 1 – LEITURA DA MEMÓRIA
ü Programa em C
• A[300]=h+A[300]
ü Programa em linguagem de montagem, supondo h alocada no 
registrador 2 e endereço inicial do vetor A no registrador 6 
(lw regA regB deslocamento):
• lw 6 5 300
• add 5 2 5
• sw 6 5 300
Endereço 
de 16 bits
216 endereços
…
32 bits 0
1
2
216 - 1
Memória Principal
Reg 6 
end. A[0]
endereço do A[300]
…deslocamento=300
Reg 5 = A[300]
32
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem – DESVIO CONDICIONAL
ü beq regA regB Label
• Caso o conteúdo de regA seja igual ao conteúdo de regB, 
vai para instrução no endereço indicado por Label, caso
contrário executa a próxima instrução.
ü Programa em C: 
if (x!=y)
f=g+x;
else
f=g+y;
ü Supondo x alocada no registrador 1, y 
em reg 2, f em reg 3 e g em reg 4, 
teremos o seguinte código:
beq 1 2 ELSE
add 4 1 3
beq 1 1 EXIT
ELSE add 4 2 3
EXIT halt
33
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem – FIM DO PROGRAMA
ü halt
• incrementa o valor de PC (Program Counter) e para 
execução do programa
ü Programa em C: 
if (x!=y)
f=g+x;
else
f=g+y;
ü Supondo x alocada no registrador 1, y 
em reg 2, f em reg 3 e g em reg 4, 
teremos o seguinte código:
beq 1 2 ELSE
add 4 1 3
beq 1 1 EXIT
ELSE add 4 2 3
EXIT halt
34
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem – LOOP
ü beq regA regB Label
• Caso o conteúdo de regA seja igual ao conteúdo de regB, 
vai para instrução no endereço indicado por Label, caso
contrário executa a próxima instrução.
ü Programa em C:
while (A[i] != k)
i=i+j;
ü Supondo i alocada no registrador 1, j em
reg 2, k em reg 3 e endereço inicial do vetor
A em reg 4: 
LOOP add 4 1 5
lw 5 5 0
beq 5 3 EXIT
add 1 2 1
beq 1 1 LOOP
EXIT halt
35
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem – LOOP
ü Programa em C:
for (i=0; i< 9; i++)
A[i]=A[i+1];
A[9]=0;
ü Tradução para linguagem de montagem:
ü Supondo i alocada no registrador 1 e endereço inicial
do vetor A no registrador 2:
addi 0 1 0 inicializa i com o valor 0
addi 0 3 9 inicializa variável de
controle do loop com
valor 9
FOR beq 1 3 SAI verifica se i < 9
add 1 2 4 obtém endereço de A[i]
addi 4 5 1 obtém endereço de A[i+1]
lw 5 5 0 obtém valor de A[i+1]
sw 4 5 0 armazena A[i+1] em A[i]
addi 1 1 1 incrementa I
beq 0 0 FOR volta para FOR
SAI sw 2 0 9 armazena 0 em A[9]
36
Fundamentos de Arquiteturas de Computadores
Linguagem de Montagem – NO OPERATION
ü noop
• incrementa o valor de PC (Program Counter) e vai para 
próxima instrução
ü Vai ser útil para execução em pipeline

Mais conteúdos dessa disciplina