11. 組譯器指引¶
11.1. 標籤¶
label(INNER1)
這會定義一個供分支指令使用的標籤。因此在程式碼中的其他地方,b(INNER1) 會使執行繼續從該 label 指引之後的指令開始。
11.2. 定義內嵌資料¶
以下組譯器指引有助於在組譯碼區塊中嵌入資料。
data(size, d0, d1 .. dn)
data 指引會在記憶體中建立一個資料值陣列。第一個引數指定其後各引數的大小(以位元組為單位)。因此以下第一條敘述會使組譯器把三個位元組(值為 2、3 與 4)放入連續的記憶體位置,而第二條則會使它發出兩個四位元組的字組。
data(1, 2, 3, 4)
data(4, 2, 100000)
長度超過單一位元組的資料值,會以小端序(little-endian)格式儲存在記憶體中。
align(nBytes)
把其後的指令對齊到 nBytes 的值。ARM Thumb-2 指令必須兩位元組對齊,因此建議在 data 指引之後、任何後續程式碼之前發出 align(2)。這可確保無論資料陣列的大小為何,程式碼都能正常執行。