Escolar Documentos
Profissional Documentos
Cultura Documentos
INDEXADO
POR
REGISTRADOR REG INDIRETO
Modos de Endereçamento
Acesso Constante
Acesso Pilha
Agenda
Parte 2 - Arquitetura de Computadores
Encontrado em:
Nintendo64
PlayStation, PlayStation2
PlayStation Portable
Roteadores Linksys-CISCO
Tipos de Instruções
Instruções MIPS
Tipos de Instruções
• Instruções Aritméticas
• Instruções Lógicas
• Instruções de Deslocamento
• Instruções de Transferência de Dados
• Instruções de Desvio Condicional
• Instruções de Desvio Incondicional
• Instruções de Ponto Flutuante
• Instruções p/ Operações Atômicas (compartilhamento acesso)
Instruções MIPS
ARITMÉTICAS
Realizam Contas sobre Valores Inteiros
Geram Resultado Numérico
Exemplos:
ADD Soma 2 Registradores
SUB Subtrai 2 Registradores
ADDI Soma 1 Registrador e 1 Constante
Instruções MIPS
TRANSFERÊNCIA DE DADOS
Transferem Dados entre Memória e Registradores
Obs.: MIPS só opera sobre Registradores!!!
Exemplos:
LW Load Word Copia palavra da Memória para Registrador
SW Store Word Copia palavra de Registrador para Memória
2 Operandos = 2 Registradores
1 Resultado = 1 Registrador
Exemplos:
AND Realiza o E lógico
OR Realiza o OU lógico
XOR Realiza o OU EXCLUSIVO
NOR Realiza o NÃO-OU
Instruções MIPS
DESLOCAMENTO (SHIFT)
Realizam Deslocamento de Bits
Úteis para Multiplicações/Divisões por 2
Exemplos:
BEQ Branch On Equal Atualiza PC, SE valores iguais
BNE Branch On Not Equal Atualiza PC, SE valores diferentes
Instruções MIPS
DESVIO INCONDICIONAL (JUMP)
Obs.: Similares aos BRANCHs
while (1) {
Mas SEM CONDIÇÃO (saltam sempre) y = y + 1;
z = y*2;
}
Usadas em LAÇOS INFINITOS
Usadas em CHAMADAS DE FUNÇÕES
x = 3;
Y = sqrt(25);
1 Operando = 1 Constante ou 1 Registrador z = x + y;
1 Resultado = PC Alterado
Exemplos:
J Jump Salta para Endereço Constante
JR Jump Register Salta para Endereço no Registrador
JAL Jump And Link Salta mas antes Guarda o PC (retorno de função)
Exemplos de Códigos
a = b + c; a = b - c; f = (g+h)-(i+j);
TAMANHO de Instrução
Tamanho FIXO
Geralmente igual ao tamanho da palavra de memória
Ex.: Arquitetura MIPS
Tamanho VARIÁVEL
Tamanho depende da Instrução (algumas pequenas, outras grandes)
Ex.: Arquitetura x86
Tamanho das Instruções
Tamanho de Instrução vs. Tamanho da Palavra
Exemplos:
JUMP Para ONDE saltar? (1 endereço)
OPCODE
OPCODE
OPCODE
OP Código da Operação
RS Número do 1º REG Origem (5 bits para endereçar 32 Regs)
RT Número do 2º REG Origem
RD Número do REG Destino
shamt Número de Deslocamento (usado no shift)
funct Código da Função a Executar (para ULA)
OP Código da Operação
RS Número REG Base da Operação
RT Número REG Destino
Constante -215 a +215-1
OP Código da Operação
Endereço DESTINO do Salto
jump
Ex: j 245
Modos Endereçamento MIPS
Modos Endereçamento MIPS
Projeto da ISA
Projeto ISA
FORMATO INSTRUÇÃO depende de Vários Fatores
Tipo I
Tipo J
Instruções para MOVIMENTAÇÃO DE DADOS
Instruções LÓGICAS E ARITMÉTICAS
Instruções para DESLOCAMENTOS
OP DESLOCAMENTO A PARTIR DO PC
DESLOCAMENTO A PARTIR DO PC
Atenção: ISAs RISC são bem mais simples que ISAs CISC !!!!
CISC com Formato Complicado
x86
Complexidade:
• Instruções com Tamanho Variável (1 a 17 bytes)
• Sempre mesmo operando como fonte e destino
• Um operando direto da Memória
• Modos de Endereçamento Complexos
Solução:
• Tenta usar apenas instruções simples
• Compilador EVITA instruções complexas
x86
Deslocamento Valor
na Memória Constante
DESLOCAMENTO IMEDIATO
INSTRUÇÃO
Arquitetura de Computadores
Lista de Exercícios