11. Diretivas do assembler

11.1. Etiquetas

  • label(INNER1)

Isto define uma etiqueta para uso numa instrução de salto. Assim, noutra parte do código, um b(INNER1) fará com que a execução continue com a instrução após a diretiva de etiqueta.

11.2. Definição de dados inline

As seguintes diretivas do assembler facilitam a incorporação de dados num bloco de código assembler.

  • data(size, d0, d1 .. dn)

A diretiva data cria um array de valores de dados em memória. O primeiro argumento especifica o tamanho em bytes dos argumentos subsequentes. Assim, a primeira instrução abaixo fará com que o assembler coloque três bytes (com valores 2, 3 e 4) em posições de memória consecutivas, enquanto a segunda fará com que emita duas palavras de quatro bytes.

data(1, 2, 3, 4)
data(4, 2, 100000)

Valores de dados com mais de um byte são armazenados em memória em formato little-endian.

  • align(nBytes)

Alinha a instrução seguinte a um valor de nBytes. As instruções ARM Thumb-2 devem estar alinhadas a dois bytes; por isso, é aconselhável emitir align(2) após as diretivas data e antes de qualquer código subsequente. Isto garante que o código será executado independentemente do tamanho do array de dados.