O que é a arquitetura ARM?
Eu diria que a arquitetura ARM (que já foi chamadado de "Advanced RISC Machine" e "Acorn RISC Machine") é uma especificação dos registradores e instruções de máquina de um processador de 32 bits baseado na filosofia RISC (a Wikipedia tem uma definição mais longa).
Na verdade existem várias versões desta especificação, a que vou tratar aqui é chamada de ARM7TDMI. Esta especificação inclui um modo com instruções de 16 bits (Thumb) que vou ignorar nestes posts. A empresa responsável pelo ARM7TDMI licencia a sua implemantação para inclusão em vários microcontroladores, como os da Atmel e ST Microeletronics.
A descrição do ARM7DMI em formato pdf pode ser encontrada aqui.
São características RISC do ARM:
- As instruções são todas codificadas da mesma forma, ocupando sempre 32 bits
- Existem vários registradores e as instruções aceitam qualquer um deles como operando
- A memória é usada como operando somente para movimentação; operações aritméticas e lógicas usam registradores e constantes como operando
- A maioria das instruções são executadas em um único ciclo
Existem inúmeros Assemblers disponíveis para o ARM, utilizando diversas sintaxes. A sintaxe que eu uso aqui é compatível com o GNU Arm Toolchain.
Os registradores do ARM
O ARM possui 16 registradores de 32 bits, denominados simplesmente de R0 a R15. O registrador R15 é sempre usado como ponteiro para a próxima instrução a executar e pode ser referenciado no Assembly como PC.
A função de chamada de subrotina salva o endereço de retorno no registrador R14, também chamado de link register (LR no Assembly).
O registrador R13 é normalmente usado como ponteiro de pilha (SP no Assembly). Entretanto, ao contrário de outros processadores, este uso é apenas convenção.
Por último, existe um registrador de status e flags, o CPSR, que é acessível apenas por instruções especiais.
No próximo post começaremos a ver as instruções.
Um comentário:
Olá Daniel, você pretende continuar a série de artigos sobre ARM? Esta arquitetura anda crescendo muito e quase não existe material em português de qualidade. Seria uma excelente oportunidade de introduzir o leitor ao mundo ARM!
Abraços
Até.
Postar um comentário