Clique sobre os objetivos listados abaixo para navegar até o conteúdo desejado.

  1. História básica
  2. Características
  3. Grupo de instruções
  4. Versões
  5. Uso do ARM
  6. Ferramentas
  7. Bibliografias

ARM, em seu início, conhecida como Acorn RISC Machine e hoje Advance RISC Machine, é uma arquitetura para processadores RISC de baixo custo e pouco consumo de energia desenvolvida pela Arm Holdings. Essa permite que outras empresas desenvolvam seus próprios processadores baseados em sua arquitetura ARM.

A arquitetura ARM foi iniciada em 1985 com sua versão v1, não utilizada comercialmente, passando por novas atualizações com melhorias internas e adição de novas instruções. Hoje, sua versão mais atual é a v9(24/01/2025).

Abaixo podemos conferir as características básicas sobre a ARM que vão desde o tipo de de design, quantidade de bits, formato de dados, flags disponíveis e outros.

  1. Design: Risc - Reduced Instruction Set Computer
  2. Tipo: Load e Store
  3. Bits: 32
  4. Barramento de memória: 32-bits
  5. Memória endereçável: 4GB
  6. Ordem dos dados: Little Endian
  7. Modos de operação: 7
  8. Suporte a coprocessador: Sim
  9. Instruções: 31
  10. Registradores: 16
  11. Modos de Endereçamento: 12
  12. Flags: 12

As características de hardware em baixo nível não serão listadas, pois estão voltadas para o campo de hardware que não será abordada no tutorial.

De forma básica e para esse tutorial, as instruções do ARM foram agrupadas como listadas abaixo. Outros materiais, livros e manuais podem utilizar diferentes termos para esses agrupamentos.

  1. Aritmética
  2. Lógica/Bit-a-bit
  3. Deslocamento e rotação
  4. Transferência
  5. Load e Store
  6. Comparação e Teste
  7. Controle de fluxo
  8. Outras

Desde sua primeira versão, a arquitetura ARM sofreu alterações ao longo de sua vida. Abaixo, uma lista das versões, desde 1995 a 2021, com suas respectivas mudanças descritas de forma resumida.

ARMv1 - 1985

Versão inicial não utilizada comercialmente.

ARMv2 - 1987

Adição de instrução de multiplicação e swap, suporte a coprocessador, modos privilegiados Supervisor, IRQ E FIQ.

ARMv3 - 1991

Adição de barramento de 32-Bits, emulação de versão v2a, alteração em CPSR, emulação de coprocessador e suporte a memória virtual nos novos modos Abort e Undefined.

ARMv4 - 1996

Adição de instrução halfword, extensão de bytes, instruções não definidas, Thumb-1 e retrocompatibilidade com arquitetura 26-bits.

ARMv5 - 2000

Extensão da v4 com instrução de breakpoint de software, Contagem de Bits(CLZ), mais instruções de coprocessamento e melhor definição de alteração de flags em instruções de multiplicação e suporte a Thumb-2.

ARMv6 - 2002

Novas instruções tanto arm(13) quanto Thumb-3(10), novas formas de multiplicação com acumulação em 64-Bits e melhorias na arquitetura interna e comportamento de instruções.

ARMv7 - 2004

Pendente

ARMv8 - 2011

Pendente

ARMv9 - 2021

Pendente

Várias empresas podem desenvolver seus processadores e/ou produtos utilizando alguma arquitetura ARM. Abaixo uma pequena lista de processadores e/ou hardwares que utilizam ARM, divididos em Criados ARM e Criado por Terceiros.

Criados pela ARM : Nome processador - Hardware usado
  1. ARM1 - ARM Evaluation System para BBC Micro
  2. ARM2 - Acorn Archimedes e ChessMachine
  3. ARM3 - Acorn Archimedes
  4. ARM60 - 3DO Interactive Multiplayer
  5. ARM7TDMI - Game Boy Advance, Nintendo DS, Nintendo DSi
  6. ARM920T - GP32, GP2X e Tapwave Zodiac
  7. ARM946E-S - Nintendo DS, Nintendo DSi, Nintendo 3DS e Nokia N-Gage
Criados por terceiros: Nome processador - Nome da empresa
  1. S-110/1100 - Digital Equipment Corporation
  2. FA510/FA526/FA626 - Faraday Technology
  3. Scorpion/Krait/Kryo - Intel, Marvell
  4. Swift/Cyclone/Typhoon - Apple

A linguagem Assembly ARM possui algumas ferramentas online e offline como assemblers e emuladores. Para emulação e debug podemos usar os assemblers/emuladores online que podem ser utilizados em qualquer sistema operacional.

Online
  1. CPULator
  2. OAKSim
  3. ARM Thumb Simulator

Para simulação e debug offline podemos utilizar os assemblers/emuladores desktop que serão podem ser utilizados para seguir o tutorial.

Desktop
  1. VisUAL

Cada uma das ferramentas acima tem suas próprias características e documentação que não serão abordadas neste tutorial. É recomendada a leitura da documentação oficial para melhor aproveitamento do tutorial.

  1. 24/01/2025 - versão inicial