(1) 标号
在ARM 汇编中,标号代表一个地址,段内标号的地址在汇编时确认,而段外标号的地址值在衔接时确认。依据标号的生成方法,能够有以下3 钟:
根据PC 的标号
根据PC 的标号时坐落方针指令前的标号或程序中的数据界说伪指令前的标号,这种标号在汇编时将被处理成PC 值加上或减去一个数字常量。它常用于一共跳转指令的方针地址,或许代码段中所嵌入的少数数据。
根据寄存器的标号
根据寄存器的标号一般用MAP 和FILED 伪指令界说,也能够用于EQU 伪指令界说,这种标号在汇编时被处理成寄存器的值加上或减去一个数字常量。它常用于拜访坐落数据段中的数据。
肯定地址
肯定地址是一个32 为的数字量,它能够寻址的规模为0~232-1,能够直接寻址整个内存空间。
(2)部分标号
部分标号首要用于部分规模代码中,在宏界说也是很有用的。部分标号是一个0~99 之间的十进制数字,可重复界说,部分标号后边能够紧接一个一般一共该部分变量效果规模的符号。部分变量的效果规模为当时段,也能够用伪指令ROUT 来界说部分标号的效果规模。
部分标号界说格局:N{routname}
其间:N 部分标号,为0~99。
routname部分标号效果规模的称号,由ROUT 伪指令界说。
部分标号引证格局:
%{F|B}{A|T} N{routname}
其间: % 一共部分标号引证操作。
F指示编译器只向前查找
B指示编译器只向后查找
A指示编译器查找宏的一切嵌套层次
T指示编译器查找宏的当时层
假如F 和B 都没有指定,则编译器先向前查找,再向后查找。假如A 和T 都没有指定,编译器查找一切从宏的当时层次到宏的最高层次,比当时层次的层次不再查找。
假如指定了routname,编译器向前查找最近的ROUT 伪指令,若routname 与该ROUT伪指令界说的称号不匹配,编译器陈述过错,汇编失利。
示例如下:
routintA ROUT
…
3routineA
BEQ%4routineA
BGE %3
4routineA
…
otherstuff ROUT
…
(3)符号
在ARM 汇编中,符号能够代表地址、变量、数字常量。当符号代表地址时又称为标号,符号便是变量的变量名、数字常量的称号、标号,符号的命名规矩如下:
a.符号由大小写字母、数字以及下划线组成;
b.除部分标号以数字最初外,其它的符号不能以数字最初;
c.符号委任大小写,且一切字符都是有意义的;
d.符号在其效果域规模你有必要是仅有的;
e.符号不能与体系内部或体系预界说的符号同名;
f.符号不要与指令助记符、伪指令同名。
ARM汇编中的标号运用
(1)标号在ARM汇编中,标号代表一个地址,段内标号的地址在汇编时确定,而段外标号的地址值在连接时确定。根据标号的生成方式,…
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/264053.html