Vous êtes sur la page 1sur 4

TRABALHO DE ORG II

LEONARDO DA SILVA MENDES

QUESTÃO 1
LW (Load Word) é uma instrução que tem como objetivo armazenar um valor, que está
na memória, em um registrador. Declarado da seguinte forma:

LW registrador_destino, valor (registrador_fonte)

O registrador_destino receberá o valor que está no endereço de memória que é


calculado pela própria instrução: registrador_fonte+valor.

EXEMPLO PRÁTICO:
O exemplo prático é dividido por 5 ciclos:
No 1º Ciclo, a memória foi endereçada com PC e disponibilizou a instrução em RD. Ao
final do ciclo a instrução é armazenada em Instr. Para isso o sinal de controle IRWrite deve ser
=1

No 2º Ciclo, a instrução é decodificada e o endereço base lido do registrador rs, e


disponibilizado em RD1. Ao final do ciclo, o endereço base é armazenado em A.
Ainda durante o 2º Ciclo, o offset é obtido do campo imm com extensão de sinal →
SignImm

No 3º Ciclo, o endereço do operando = base + offset é obtido por meio da ALU. O sinal
ALUControl deve estar ativo e configurar soma. Ao final do ciclo o endereço é armazenado em
ALUOut

4º Ciclo: leitura do operando. Endereço ALUAOut aplicado em A, sinal IorD precisa


ser = 1. Valor do operando disponibilizado em RD. Ao final do ciclo, o operando é armazenado
em Data.
5º Ciclo: escrita do operando. Valor Data aplicado em WD3, sinal RegWrite precisa ser
= 1. Endereço do registrador rt disponibilizado em A3. Ao final do ciclo o operando é
armazenado em rt

QUESTÃO 2
SW (Store word) é uma instrução que tem como objetivo armazenar um valor, que está
em um registrador, na memória. Declarado da seguinte forma:

SW registrador_fonte, valor (registrador_destino)

registrador_fonte é o valor que deve ser armazenado no endereço de memória


determinado por (registrador_destino+valor), funcionando então de maneira inversa ao LW.

EXEMPLO PRÁTICO:
Toda a infraestrutura criada para lw pode ser aproveitada para sw. No 3º ciclo o
operando é lido de rt e armazenado em B. No 4º ciclo o operando e disponibilizado em WD e,
ao final do ciclo, é armazenado na memória. (Um ciclo a menos que lw). O sinal de controle
MemWrite deve estar ativo em vez de RegWrite

No 4º ciclo o resultado da operação é armazenado em rd. Os sinais MemtoReg e


RegWrite devem ser = 1.
QUESTÃO 3
BEQ (Branch On Equal) essa instrução força um desvio para o comando com o LABEL
(nome de desvio) se o valor no registrador 1 for igual ao valor no registrador 2, portanto, é uma
instrução de comparação. Declarado da seguinte forma:

BEQ registrador1, registrador2, endereço de desvio

registrador1 e registrador2 são os registradores que serão comparados e o endereço de


16 bits é o desvio.
Basicamente, se registrador1 = registrador2 então, desvia para o endereço que está
sendo apontado pelo LABEL e execute as instruções que ali estão. Caso contrário, o programa
continuará executando as instruções seguintes.

EXEMPLO PRÁTICO:
No 2º ciclo BTA é computado pela ALU (= PC+ 4 + SE(imm) x 4). Sinal PCEn é
ativado. PCSrc = 1. Ao fim do ciclo PC = BTA.
No 3º ciclo o conteúdo de rs e rt é disponibilizado para comparação pela ALU. Sinal
Zero é ativado ao fim do ciclo se forem iguais.

Vous aimerez peut-être aussi