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

  1. Tipos de dados
  2. Tipos derivados
  3. Sinalização

Assim como outras arquiteturas 32-bits, ARM trabalha com os tipos de dados Byte, Halfword e Word com seus bits menos significativos residindo à direita.

Halfword e Word são conhecidos como Word e Doubleword na arquitetura x86, e na arquitetura Motorola(68K) como Word e LongWord.

Tab. 1: Byte
Byte
7 6 5 4 3 2 1 0
Tab. 2: Halfword
Halfword
15 14 13 ... 3 2 1 0
Tab. 3: Word
Word
31 30 29 ... 3 2 1 0

Uma Halfword é composta de 2 bytes, uma word é composta de 2 Halfwords ou 4 bytes, como pode ser notado acima. Uma Word ou Halfword não podem ser acessadas diretamente por seus bytes sendo apenas possível via instruções lógica e deslocamento.

A partir do dados de tamanho 8, 16-bits e 32-bits, os seguintes tipos de dados derivados podem ser declarados e utilizados de acordo com a necessidade do software:

Tipo 4: array de bytes
RAM 0100 0101 0102 (...)
Valor 00h 01h 10h aah
Tipo 5: string ascii
0 1 2 (...)
'o' 'l' 'a' (...)
Tipo 6: array de halfword
RAM 0100 0102 (...)
Valor 3412h 7856h (...)
Tipo 7: Array de ponteiro
RAM 0100 0104 (...)
Valor FFFF0000h FFFF1234h (...)

Os dados mostrados acima são declarados no código utilizando diretivas específicas fornecidas pelo assembler em que informamos na linha de código qual o tamanho do dado que deve ser usado.

Tipos de dados mais complexos como structs e strings multibytes são declarados utilizando como base os tipos de dados vistos fundamentais byte, halfword e word.

Tipo 8: Struct
RAM 0000 0001-2 0003-5 (...)
Valor FFh 1234Fh 'olá' (...)

Os 3 tamanhos de dados acima, utilizam seus bits mais significativos Bit 7, Bit 15 e Bit 31, respectivamente, como indicadores de sinalização que modificam o intervalo de dados aceito por cada tipo de dado conforme tabela abaixo:

Tab. 9: Sinalização
Dado Não-sinalizado Sinalizado
Byte 0...255 -128...127
Halfword 0...65536 -32.768...32.767
Word 0…4.294.967.295 -2.147.483.648...2.147.483.647

A arquitetura ARM fornece instruções para carregar dados sinalizados/não-sinalizados que estendem um Byte ou Halfword para formação de um dado 32-bits, baseado no bit mais significativo, não sendo possível acessar alterar um byte ou halfword menos significativos sem alterar os mais significativos.

Tab. 10: Sinal Byte
Sinal estendido Byte
FF FF FF F0
00 00 00 7F
Tab. 11: Sinal Halfword
Sinal estendido Halfword
FFFF FFF0
0000 7FFF

O carregamento de halfword mais altas em registradores é feita utilizando instruções de deslocamento.

  1. 22/04/2026 - revisão 1 - Ajustes: 'objetivos, pontuais; Adição: tipos derivados
  2. 27/01/2025 - versão inicial