11. Diretivas do assembler

11.1. Rótulos

  • label(INNER1)

Isto define um rótulo para uso em uma instrução de desvio. Assim, em outro lugar no código, um b(INNER1) fará a execução continuar com a instrução após a diretiva de rótulo.

11.2. Definindo dados inline

As diretivas de assembler a seguir facilitam a incorporação de dados em um bloco de código assembler.

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

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

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

Valores de dados mais longos que um único byte são armazenados na memória no 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, portanto é aconselhável emitir align(2) após diretivas data e antes de qualquer código subsequente. Isso garante que o código rodará independentemente do tamanho do array de dados.