Formato da instrução - Comunidade Aprender Livre

Propaganda
Formato da instrução
Atenção o formato da instrução abordado neste texto NÃO é um formato MIPS padrão. Nossa
instrução possuí 12bits (diferente do MIPS que possui 32bits). O formato aqui apresentado busca
APENAS instroduzir o conceito de representação da instrução no computador e orientar os alunos
quanto a construção e operação da ULA de 3bits (que está sendo construída em sala).
Formato e Tipo de Instruções suportadas pela ULA3bits
Instrução RR
A instrução RR é uma instrução de registrador-registrador. Nesta instrução são informados os
endereços dos registradores rd rs e rt, além da operação. O resultado da operação com os operandos
rs e rt é armazenado em rd.
1
bit
opcode
campo
tipo
2
código da operação
3
4
5
rd
6
7
8
9
10
rs
11
12
rt
endereço do registrador de endereço
do
primeiro endereço
do
segundo
destino
operando no banco de operando no banco de
registradores
registradores
Instruções do tipo RR suportadas pela ULA3bits.
• And 000 Instrução AND lógico
• or
001 Instrução OR lógico
• add 010 Instrução aritmética de soma
• sub
011
Instrução aritmética de subtração
Exemplos:
Instrução
Comentário
A = B+C
Alto nível
add $1,$2,$3
MIPS
010001010011
Liguagem de máquina
Instrução
Comentário
D = A-E
Alto nível
sub $4,$1,$5
MIPS
011100001101
Liguagem de máquina
Instrução RI
A instrução RI é uma instrução de carga imediata. Nesta instrução é informado do registrador rd, o
valor e a operação. O valor informado fica armazenado em rd.
1
bit
2
3
opcode
campo
5
6
7
rd
código da operação
tipo
4
8
9
10
$zero
11
12
valor
endereço do registrador de endereço do registrador dado a ser armazenado em
destino
zero (registrador reservado rd
do MIPS).
Instruções do tipo RI suportadas pela ULA3bits.
• li
110
Pseudo-Instrução MIPS Load Immediate
Exemplos:
Instrução
Comentário
A=10;
Alto nível
li $1,$zero,010
MIPS
110001000010
Liguagem de máquina
Instrução RM
A instrução RM é uma instrução de registrador-memória. Nesta instrução é informado do
registrador rd, a operação, o endereço da memória e o offset. O dado do endereço de memória
informado é armazenado em rd.
1
bit
campo
tipo
2
opcode
código da operação
3
4
5
rd
6
7
8
9
10
MEM
11
12
offset
endereço do registrador de endereço do registrador espaço
reservado
destino
que contém o endereço da memória.
variável no banco de
memória
de
Instruções do tipo RI suportadas pela ULA3bits.
• lw
100
Instrução MIPS Load Word
• sw
101
Instrução MIPS Store Word
Exemplos:
Instrução
Comentário
lw $1,$2,offset
MIPS
100001010000
Liguagem de máquina
sw $3,$1,offset
MIPS
101011001000
Liguagem de máquina
Exemplo de execução de programa de alto nível em
linguagem de máquina na ULA3bits
Pseudo linguagem MIPS
Comentário
Linguagem de máquina
Var
int a;
int b;
int c;
li $1,$zero,1
li $2,$zero,2
li $3,$zero,3
Armazena em $1 o endereço da variável a(1);
Armazena em $2 o endereço da variável b(2);
Armazena em $3 o endereço da variável c(3);
110001000001
110010000010
110011000011
read a;
li $4,$zero,3
sw $4,$1,offset
Armazena em $4 o valor da variável a(3);
Armazena no banco de memória o valor de $4 no
endereço da variável a;
110100000011
101100001000
read b;
li $4,$zero,2
sw $4,$2,offset
c = a+b;
lw $4,$1,offset
lw $5,$2,offset
add $6,$4,$5
sw $6,S3,offset
Begin
End
Armazena em $4 o valor da variável b(2);
Armazena no banco de memória o valor de $4 no
endereço da variável b;
carrega em $4 o valor da variável a;
carrega em $5 o valor da variável b;
soma $4+$5 e armazena no registrador$6
Armazena no banco de memória o valor de $6 no
endereço da variável c;
110100000010
101100010000
100100001000
100101010000
010110100101
101110011000
Download