Arm instrucion set

846 palavras 4 páginas
Introdução ao Processador ARM
MC404

Modos de Operação
• O processador Arm tem vários modos de operação:
– Usuário (sem privilégios) – Supervisor (quando inicia ou reset) – System (para chamadas ao S.O.) – IFQ (interrupção “rápida) – IRQ (interrupção “normal”) – Abort (violações de memória, como falta de página) – Undef (instruções inexistentes)

Registradores
• O Arm tem 37 registradores, mas cada modo “enxerga” 17 registradores:
– 16 registradores gerais
• r0 a r15 • r15 é o apontador de instruções (chamado de PC, program counter) • Qualquer registrador pode ser usado como apontador de pilha! Não tem SP ou FP fixos, mas normalmente SP=r13 e FP=r11

– 1 registrador de estado (flags, chamado cpsr)

Registradores
• Todas as instruções podem usar r0-r14 como operandos • Maioria das instruções permitem uso de r15 (PC) como operando, mas algumas não podem usar PC. • Há instruções específicas para carregar e armazenar as flags (cpsr) em um registrador

Flags
• Program status registers (basicamente, um para cada modo, como veremos) • Bit 31: N, flag de sinal • Bit 30: Z, flag de zero • Bit 29: C, flag de carry • Bit 28: V, flag e overflow • Bit 7: ativa/inibe interrupções IRQ • Bit 6: ativa/inibe interrupções IFT • Bit 4-0: indicam modo do processador

Tipos de instruções
• Data Processing
– Aritméticas, lógicas, deslocamento, cópia de registradores, cópia de flags

• Load/Store
– Palavra, meia-palavra, bytes, múltiplas palavras

• Branch
– Desvio e chamadas de procedimento

• Multiply • Software interrupt
– Chamadas a sistema

Instruções

Instruções

Instruções

Execução condicional
• Todas as instruções são executadas condicionalmente aos valores das flags do modo corrente (cpsr) • Bits 31-28 de cada instrução contém código da condição (ou seja, é possível codificar 16 condições, mas somente 15 são codificadas)

Execução condicional

Shifter
• No processador Arm, na maioria das instruções

Relacionados