马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
数字表达式由数字常量、数字变量、操作符和括号组成。数字表达式表示的是一个32位的整数。当作为无符号整数时,其取值范围为0~2的32次幂-1;当作为有符号整数时,其取值范围为-2的31次幂~2的31次幂-1。汇编编译器并不是区分一个数是无符号的还是有符号的,事实上,-n与2的32次幂-n在内存中是同一个数。 (1)
整数数字量 在ARM汇编语言中,整数数字量有以下几种格式: 十进制数; 十六进制数,以0x和&开头; n进制数,形式为n_base-n-digits。 当使用DCQ或DCQU伪操作声明时,该数字量表示对数的范围为0~2的64次幂-1.其他情况下,数字量表示的数的范围为0~2的32次幂-1. 示例86 整数数字量举例。 A SETA 10000 ;10000为十进制数 B DCD 0xABC ;0xABC表示为十六进制数 C SETA 8_74007 ;8_74007表示为八进制数 DCD 2_11001010 ;2_11001010表示为二进制数 LDR R4,&F000000F ;&F000000F表示为十六进制数 DCQ 0x123456789ABCDEF ;0x123456789ABCDEF表示为十六进制数 (2)
浮点数字量 浮点数字量有以下几种格式: {-} digits E{-}digits; {-} { digits}.digits {E{-}digits}; 以0x或&开头的十六进制数。 其中:digits为十进制的数字。单精度的浮点数表示范围为:最大值为3.40282347e+3.8;最小值为1017549435-38.双精度的浮点数表示范围为:最大值为1.79769313486231571e+308;最小值为2.22507385850720138e-308. 示例87 浮点数字量举例。 DCED 1E308,-4E-100 DCFS 1.0 DCFD 3.725e15 (3)
数字变量 数字变量用伪操作GBLA或LCLA声明,用SETA赋值,它代表一个32位的数字量。与数字表达式相关的操作符如下: ①NOT按位取反 :NOT:A 其中:A为一个32位数字量。 ②+、—、x、/及MOD算数操作符 A+B 表示A、B的和 A—B 表示A、B的差 AxB 表示A、B的积 A/B 表示A除以B的商 A:MOD:B表示A除以B的余数。 其中:A和B均为数字表达式。 ③ROL、ROR、SHL及SHR移位(循环移位操作) A:ROL:B 将整数A循环左移B位 A:ROR:B 将整数A循环右移B位 A:SHL:B 将整数A左移B位,空位用0填充。 A:SHR:B 将整数A右移B位,这里是逻辑右移,空出的位用0填充。 其中:A和B为数字表达式。 示例88 移位操作符举例 在SNU编译环境下,A:SHL:B和A:SHR:B可用“<<”和“>>”代替。例如: .equ x,0x00000001<<0x00000001 汇编后,x的值为2,说明逻辑右移空位用0填充。 .equ y,0x80000000<<0x00000001 汇编后,y的值为1073741824,说明逻辑右移空位用0填充。 ④AND、OR及EOR按位逻辑操作符 A:AND:B 将数字表达式A和B按位逻辑“与”操作 A:OR:B 将数字表达式A和B按位逻辑“或”操作 A:EOR:B 将数字表达式A和B按位逻辑“异或”操作 其中:A和B为数字表达式。 凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网
|