Escolar Documentos
Profissional Documentos
Cultura Documentos
Organização de Computadores
Conjunto de Instruções do MIPS
Componentes básicos:
Contador de programa (PC) • Unidade de controle
Memória • Registrador de instruções (IR)
Banco de registradores • Registrador de dados da memória
Unidade lógica e aritmética • Outros registradores internos
(ALU)
Instruções MIPS – armazenamento na
memória
• MIPS exige que todas as palavras comecem em
endereços que são múltiplos de 4 bytes;
• Alinhamento: objetos devem estar em um endereço
que é um múltiplo do seu tamanho;
Instruções MIPS – armazenamento na
memória
• Dois sistemas para numeração dos Bytes dentro uma
palavra:
• Big Endian - Byte mais à esquerda marca endereço
da word
• Little Endian – Byte mais à direita marca endereço
da word.
MIPS usa Big Endian.
Instruções MIPS - armazenamento na
memória
• Big Endian - Byte mais à esquerda marca endereço
da word
• Little Endian – Byte mais à direita marca endereço
da word.
Exemplos:
Big Endian:
• IBM 360/370, Motorola 68k, MIPS, Sparc,
HP PA
Little Endian:
• Intel 80x86, DEC Vax, DEC Alpha
Montagem de Linguagem (Assembly)
• Todas as instruções aritméticas e lógicas com
três operandos
• A ordem dos operandos é fixa (destino
primeiro);
[label: ] op-code [operando_dest], [operando], [operando] [#comentario]
a = b + c + d + e;
f = (g+h)-(i+j);
g = h + A[8];
g = h + A[8];
1) Transferir A[8] para um registrador
2) O endereço de A[8] é a soma do registrador base com a soma do
índice
3) Os dados devem ser colocados em um registrador temporário
para uso na próxima instrução.
lw $t0, 8($s3)
g = h + A[8];
Correspondente assembly MIPS:
g = h + A[8];
Correspondente assembly com offset correto:
Instruções do tipo I:
Exemplo 2:
Formato da instrução:
Instruções MIPS
• Instruções formato tipo J – jump (desvios)
Formato da instrução:
0000 0000 0000 0000 0000 0000 0000 0000 1001 bin
0000 0000 0000 0000 0000 0000 0000 1001 0000 bin
Instruções MIPS
Instruções de Operações Lógicas
As instruções de deslocamentos ainda são úteis para
realizar a multiplicação ou divisão de um número de
forma muito rápida.