在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
芯片精品文章合集(500篇!) 创芯人才网--重磅上线啦!
查看: 1354|回复: 1

[资料] ARM汇编语言中的符号全

[复制链接]
发表于 2016-2-3 15:53:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

ARN汇编语言中,符号可代表地址、变量和数字常量。当符号代表地址时又被称为标号。标号包含变量、数字常量、标号和局部标号。

符号的命名规则如下:

符号由大小写字母、数字以及下划线组成。

局部标号以数字开头,其他符号都不能以数字开头。

符号是区分大小写的。

符号中在其作用范围内必须惟一,即在其作用范围内不可有同名的符号。

程序中的符号不能与系统内部变量或者系统预定义的符号同名。

程序中的符号通常不要与指令助记符或者伪操作同名。

(1)
变量

ARM汇编语言中,变量有数字变量、逻辑变量和串变量3种类型。变量的类型在程序中是不能改变的。数字变量的取值范围为数字常量的数字表达式所能表示的数值范围。关于数字常量和数字表达式所能表示的数值范围。逻辑变量的取值为{ture}{false}。串变量的取值范围为串表达式可表示的范围。

ARM汇编语言中,使用GBLAGBLLGBLS伪操作声明全局变量;使用LCLALCLLLCLS伪操作声明局部变量;使用SETASETLSETS伪操作为这些变量赋值。

(2)
数字常量

数字常量一般由3种表示方式:

十进制数,如436112等。

十六进制数,如0x34250xFE0x1等。

n进制数,用n_XXX表示,其中n2~9XXX为具体数,如2_010011018_4326等。

若数字常量时32位整数,当做为无符号整数时,其取值范围为0~232次幂-1;当作为有符号整数时,其取值范围为-231次幂~231次幂-1.汇编编译器并不区分一个数是无符号的还是有符号的,事实上,,-n232次幂-n在内存中是同一个数。

ARM汇编语言中,使用EQU伪操作来定义数字常量。

注意:数字常量一经定义,其数值就不能再修改。

ARM汇编语言中,标号是表示程序中的指令或数据地址的符号,一般它代表一个地址。根据标号的生成方式可有以下3种,即

基于PC的标号:是位于目标指令前或程序中数据定义伪操作前的标号,在汇编时将被处理成PC值加上一个数字常量。它常用于表示跳转指令的目标地址,或者代码段中所嵌入的少量数据。

基于寄存器的标号:通常用MAPFILED伪操作定义该标号,也可用EQU伪操作定义。这种标号在汇编时将被处理成寄存器的值加上一个数字常量。它常用于访问位于数据段中的数据。

绝对地址:是一个32位的数字量,寻址的范围为0~232次幂-1,即直接可寻址整个内存空间。

(3)局部标号

局部标号主要用于局部范围代码。它由一个0~99数字和一个通常表示该局部标号作用范围的标号组成,可重复定义。局部标号的作用范围通常为当前段,也可用伪操作ROUT表定义局部标号的作用范围。

局部标号定义的语法格式如下:

N{routname}

其中:N0~99数字;routname为符号,通常为该标号作用范围的名称。

局部标号引用的语法格式如下:

%{F|B}{A|T}      N{routname}

其中:%表示引用操作;F指示编译器只向前搜索;B指示编译器只向后搜索;A指示编译器搜索宏的所有嵌套层次;T指示编译器搜索宏的当前层次。

如果FB都没有指定,则编译器先向前搜索,再向后搜索;如果AT都没有指定,则编译器搜索所有从当前层次到宏的最高层次,比当前层次低的层次不再搜索。如果指定了routname,则编译器向前搜索最近的ROUT伪操作;若routname与该ROUT伪操作定义的名称不匹配,则编译器你报告错误,汇编失败。

凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网

发表于 2016-2-6 04:37:30 | 显示全部楼层
谢谢分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-10 20:48 , Processed in 0.014403 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表