標號(label)是為一組機器指令所起名字,表示程式中的指令或者資料位址的符號。標號可有可無,只有當需要用符號位址來訪問該語句時,才給此語句賦予標號。通過在目標位址的前面放上乙個標號,可以在指令中使用標號來代替直接使用位址。標號是程式目標標誌,總是和某位址相聯絡,供轉移或迴圈指令控制轉移使用。標號是編譯程式使用的,也就是說程式中最後生成的**中標號都換成了相應的數值。
因標號表示是指令位址,所以它有三個屬性,即段屬性、偏移屬性和型別屬性。段屬性即段位址,標號段必須在cs中。偏移屬性是表示該標號到段首位址距離,單位是位元組,是16位無符號整數。型別屬性是距離屬性,指標號和轉移指令距離,該標號在本段內引用,距離在-128~ 127之間時稱短標號,距離屬性為short,當標號在本段,距離在-32768~ 32767之間時稱近標號,距離屬性為near,當引用標號指令和標號不在同一段時稱遠標號,距離屬性為far。
根據標號的生成方式可分為3種:
1.基於pc的標號。
基於pc的標號是位於目標指令前或者程式中資料定義偽操作前的標號。這種標號在彙編時將被處理成pc值加上(或減去)乙個數字常量。常用於表示跳轉指令的目標位址,或者**段中所嵌入的少量資料。
2.基於暫存器的標號。
基於暫存器的標號常用map和field未定義操作,也可以該用equ偽定義。這種標號在彙編時將被處理成暫存器的值加上(或減去)乙個資料常量。常用於訪問資料段中的資料。
3.絕對位址。
絕對位址是乙個32位資料。它可以定址2的32次方 -1,即直接可以定址整個記憶體空間。
ARM彙編中的標號
arm彙編中的標號 標號 label 是為一組機器指令所起名字,表示程式中的指令或者資料位址的符號。標號可有可無,只有當需要用符號位址來訪問該語句時,才給此語句賦予標號。通過在目標位址的前面放上乙個標號,可以在指令中使用標號來代替直接使用位址。標號是程式目標標誌,總是和某位址相聯絡,供轉移或迴圈指令...
ARM彙編中的標號
1 標號 在arm 彙編中,標號代表乙個位址,段內標號的位址在彙編時確定,而段外標號的位址值在連線時確定。根據標號的生成方式,可以有以下3 鐘 基於pc 的標號 基於pc 的標號時位於目標指令前的標號或程式中的資料定義偽指令前的標號,這種標號在彙編時將被處理成pc 值加上或減去乙個數字常量。它常用於...
ARM彙編中的標號使用
參考自 1 標號 在arm 彙編中,標號代表乙個位址,段內標號的位址在彙編時確定,而段外標號的位址值在連線時確定。根據標號的生成方式,可以有以下3 鐘 基於pc 的標號 基於pc 的標號時位於目標指令前的標號或程式中的資料定義偽指令前的標號,這種標號在彙編時將被處理成pc 值加上或減去乙個數字常量。...