ARM汇编中的标号
2012-01-06 16:11
162 查看
ARM汇编中的标号
标号(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汇编中的标号
- GUN ARM 汇编语法之标号
- GUN ARM汇编中标号的引用在汇编和C语言中区别(monitor_flash_len = _bss_start - _armboot_start;)
- ARM汇编中的标号
- ARM汇编中的标号使用
- arm汇编标号globel和word解释
- arm汇编标号.globel和.word解释
- ARM汇编中的标号
- arm汇编标号.globel和.word解释
- arm汇编标号globl和word解释
- GUN ARM汇编中标号的引用在汇编和C语言中区别
- ARM-Linux汇编到ADS汇编转换需要注意的问题
- C和arm的汇编的互相调用
- arm蛋疼汇编 part4--接着hello uboot part2!
- Source Insight查看ARM汇编源程序,语法高亮,S,asm文件
- ARM汇编, C语言和汇编混合编程
- arm汇编—bic ,orr
- ARM汇编伪指令介绍
- ARM汇编编程基础之一 —— 寄存器
- iOS程序破解——ARM汇编基础