ARM匯編中的標(biāo)號(hào)
因標(biāo)號(hào)表示是指令地址,所以它有三個(gè)屬性,即段屬性、偏移屬性和類(lèi)型屬性。段屬性即段地址,標(biāo)號(hào)段必須在CS中。偏移屬性是表示該標(biāo)號(hào)到段首地址距離,單位是字節(jié),是16位無(wú)符號(hào)整數(shù)。類(lèi)型屬性是距離屬性,指標(biāo)號(hào)和轉(zhuǎn)移指令距離,該標(biāo)號(hào)在本段內(nèi)引用,距離在-128~ 127之間時(shí)稱短標(biāo)號(hào),距離屬性為SHORT,當(dāng)標(biāo)號(hào)在本段,距離在-32768~ 32767之間時(shí)稱近標(biāo)號(hào),距離屬性為NEAR,當(dāng)引用標(biāo)號(hào)指令和標(biāo)號(hào)不在同一段時(shí)稱遠(yuǎn)標(biāo)號(hào),距離屬性為FAR。
本文引用地址:http://www.ex-cimer.com/article/201611/319961.htm根據(jù)標(biāo)號(hào)的生成方式可分為3種:
1.基于PC的標(biāo)號(hào)。基于PC的標(biāo)號(hào)是位于目標(biāo)指令前或者程序中數(shù)據(jù)定義偽操作前的標(biāo)號(hào)。這種標(biāo)號(hào)在匯編時(shí)將被處理成PC值加上(或減去)一個(gè)數(shù)字常量。常用于表示跳轉(zhuǎn)指令的目標(biāo)地址,或者代碼段中所嵌入的少量數(shù)據(jù)。
2.基于寄存器的標(biāo)號(hào)。
基于寄存器的標(biāo)號(hào)常用MAP和FIELD未定義操作,也可以該用EQU偽定義。這種標(biāo)號(hào)在匯編時(shí)將被處理成寄存器的值加上(或減去)一個(gè)數(shù)據(jù)常量。常用于訪問(wèn)數(shù)據(jù)段中的數(shù)據(jù)。
3.絕對(duì)地址。
絕對(duì)地址是一個(gè)32位數(shù)據(jù)。它可以尋址2的32次方 -1,即直接可以尋址整個(gè)內(nèi)存空間。
評(píng)論