|
ARM Advanced RISC Machine |
||
|
Conjunto de Instruções
A
arquitetura ARM trabalha com dois tipos de instruções: o ARM e o THUMB. A maioria destas instruções contêm um campo de condição de 4 bits. Estas condições são ativadas através de sufixos que são colocados junto com os minemônicos das instruções. Por exemplo, um salto (B) pode ser acompanhado de um NE (not equal), o que gera uma expressão BNE. Essa instrução só será executada caso a condição seja verdadeira. ¡@ INSTRUÇÕES DE BRANCH Todos os processadores ARM suportam instruções de branch com saltos condicionais para frente ou para trás de até 32M. Saltos mais longos podem ser feitos através de chamadas de subrotinas como por exemplo o Branch whith Link (BL) que mantem o endereço de retorno no LR (R14). A instrução BX permite a troca entre o estado ARM e o estado THUMB. Esta instrução copia o conteudo de um registrador de propósito geral para o PC. Caso o bit[0] do valor transferido para o PC seja 1, o processador troca para o estado THUMB. INSTRUÇÕES DE PROCESSAMENTO DE DADOS O ARM possui 16 instruções mostrada na tabela a seguir:
INSTRUÇÕES DE ACESSO AO REGISTRADOR DE ESTADO
Existem duas instruções para mover os conteúdos de um registrador de
propósito geral e de um registrador de estado, que são as seguintes: ¡@ INSTRUÇÕES DE LOAD E STORE A arquitetura ARM suporta dois tipos de instruções de load e store que transferem o conteudo de um registrador para a memória ou ao contrário. O primeiro tipo pode carregar ou escrever uma parava de 32 bits ou um byte sem sinal. O segundo tipo pode ler ou escrever meia palavra de 16 bit sem sinal, e pode carregar e sinalizar meia palavra de 16 bit ou um byte. Este tipo de instrução está disponível apenas para a arquitetura ARM versão 4 ou posterior. Codificação das instruções: Instrução que lê e carrega palavra ou byte sem sinal:
I,P,
U, W ¡V são bits para distinguir diferenças entre tipos de
<addressing_mode>. Instrução que lê e carrega meia palavra ou lê um byte sinalizado :
I,P,U,W ¡V são
registradores que especificam o tipo de endereçamento
INSTRUÇÕES GERADORAS DE EXCESSÕES Existe duas instruções deste tipo: • a SWI que causa uma interrupção de software. É o mecanismo principal utilizado pelo ARM para poder executar codigos do Sistema Operacional no modo de usuário (User Mode). • E existe o BKPT. Esta instrução é usada para breakpoints na arquitetura ARM da versão 5 em diante. A codificação destas instruções é a seguinte:
INSTRUÇÕES DO COPROCESSADOR São instruções para fazer a comunicação com coprecessadores. Elas permitem o processador ARM iniciar uma operação de processamento de um coprecessador. Permite fazer transferencias entre os registradores do processador e dos coprocessadores. E permite também o processador criar enderenços para o coprocessador carregar e escrever instruções. O CONJUNTO DE INSTRUÇÕES THUMB O THUMB possui instruções com as mesmas finalidades das instruções ARM, porém são codificadas com 16 bits. Estas instruções THUMB geram códigos menores porém muitas vezes ocorre de aumentar o número de instruções que o processador deve executar. Uma solução para isso são aplicações que utilizam ambos tipos de instruções ( ARM e THUMB). Aplicações deste tipo conseguem reduzir o tamanho do seu código significativamente e conseguem manter o consumo de energia baixo. As codificações de algumas instruções THUMB são as seguintes: ¡@ |
||