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