EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。尽管符号的命名由编程者决定,但并不是任意的,必须遵循以下的约定: — 符号区分大小写,同名的大、小写符号会被编译器认为是两个不同的符号。
4 i7 x, Q0 k: K6 @7 H$ U— 符号在其作用范围内必须唯一。 ) T& j. h( ^) Q2 h8 S# p& ~8 j
— 自定义的符号名不能与系统的保留字相同。 ]0 V5 V5 v; {# \4 o
— 符号名不应与指令或伪指令同名。 / A ]2 ~# H& P4 H" X/ J7 b
1、 程序中的变量
7 L. [' D- p! A9 k6 z7 P" \' K; ]程序中的变量是指其值在程序的运行过程中可以改变的量。 ARM ( Thumb )汇编程序所支持的变量有数字变量、逻辑变量和字符串变量。
6 m' ^; c7 j! I$ z: H数字变量用于在程序的运行中保存数字值,但注意数字值的大小不应超出数字变量所能表示的范围。
( b! E X+ j9 R4 ]0 i6 A逻辑变量用于在程序的运行中保存逻辑值,逻辑值只有两种取值情况:真或假。
9 X$ O! }* s& v, T字符串变量用于在程序的运行中保存一个字符串,但注意字符串的长度不应超出字符串变量所能表示的范围。
( @/ K6 X% f9 `, E在 ARM ( Thumb )汇编语言程序设计中,可使用 GBLA 、 GBLL 、 GBLS 伪指令声明全局变量,使用 LCLA 、 LCLL 、 LCLS 伪指令声明局部变量,并可使用 SETA 、 SETL 和 SETS 对其进行初始化。 & c9 G$ l3 N' i6 }
2、 程序中的常量 8 V4 e& p2 ~" N
程序中的常量是指其指在程序的运行过程中不能被改变的量。 ARM ( Thumb )汇编程序所支持的常量有数字常量、逻辑常量和字符串常量。
: n5 l0 D; P' x) d数字常量一般为 32 位的整数,当作为无符号数时,其取值范围为 0 ~ 2 32 -1 ,当作为有符号数时,其取值范围为 -2 31 ~ 2 31 -1 。
" Y- `* T& h1 F0 L: r7 g逻辑常量只有两种取值情况:真或假。
" H+ E- v( O6 L) N. }7 |字符串常量为一个固定的字符串,一般用于程序运行时的信息提示。 7 H, }8 q( M( A; ?
3、 程序中的变量代换
& ?7 S/ v0 B8 T4 d4 P程序中的变量可通过代换操作取得一个常量。代换操作符为 “ $ ” 。
% L$ V- ^, ]! c. @如果在数字变量前面有一个代换操作符 “ $ ” ,编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换 “ $ ” 后的数字变量。 k* X9 g# }6 \6 U8 ]
如果在逻辑变量前面有一个代换操作符 “ $ ” ,编译器会将该逻辑变量代换为它的取值(真或假)。 ) V' B3 V' T9 ^( Z+ m: L3 E* r
如果在字符串变量前面有一个代换操作符 “ $ ” ,编译器会将该字符串变量的值代换 “ $ ” 后的字符串变量。
% G# B) g, N, B/ h使用示例:
" M7 N0 P! I4 H; u% `LCLS S1 ;定义局部字符串变量S1 和S2 1 ~7 y- Z8 j3 h# U/ b3 f
LCLS S2
& T; _7 A7 J- ^8 a4 p1 U6 OS1 SETS “ Test! ”
- r: ^. v5 t" V$ a3 VS2 SETS “ This is a $S1 ” ;字符串变量S2 的值为 “ This is a Test! ”
5 D- y% Z2 ~! G( i |