EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。尽管符号的命名由编程者决定,但并不是任意的,必须遵循以下的约定: — 符号区分大小写,同名的大、小写符号会被编译器认为是两个不同的符号。 7 n9 P* T/ \/ V1 T% s9 u5 l
— 符号在其作用范围内必须唯一。
4 p1 f c3 G( v1 G4 C+ N— 自定义的符号名不能与系统的保留字相同。
; }! H8 B2 I+ [5 r" s& g! A— 符号名不应与指令或伪指令同名。
4 [3 ~9 _& x2 P3 a; X: b6 p$ Z0 E1、 程序中的变量
6 \% a% R8 _& P( h程序中的变量是指其值在程序的运行过程中可以改变的量。 ARM ( Thumb )汇编程序所支持的变量有数字变量、逻辑变量和字符串变量。
6 B, ~9 C3 Q" e) j7 s) b7 x数字变量用于在程序的运行中保存数字值,但注意数字值的大小不应超出数字变量所能表示的范围。
+ {( H8 |; Z/ O! R7 w; l- u逻辑变量用于在程序的运行中保存逻辑值,逻辑值只有两种取值情况:真或假。
5 e% P1 }- I- W1 g) c字符串变量用于在程序的运行中保存一个字符串,但注意字符串的长度不应超出字符串变量所能表示的范围。 - U+ b( o0 U( M6 X4 a3 m3 V( j2 Z
在 ARM ( Thumb )汇编语言程序设计中,可使用 GBLA 、 GBLL 、 GBLS 伪指令声明全局变量,使用 LCLA 、 LCLL 、 LCLS 伪指令声明局部变量,并可使用 SETA 、 SETL 和 SETS 对其进行初始化。
) o( ]4 r" T2 J) K8 n3 |: K/ v2、 程序中的常量
& n1 y: J0 i4 `+ r' m [6 @+ x程序中的常量是指其指在程序的运行过程中不能被改变的量。 ARM ( Thumb )汇编程序所支持的常量有数字常量、逻辑常量和字符串常量。 2 k2 `5 m* v& p( |& `# t! S+ Z
数字常量一般为 32 位的整数,当作为无符号数时,其取值范围为 0 ~ 2 32 -1 ,当作为有符号数时,其取值范围为 -2 31 ~ 2 31 -1 。 + C0 J9 c) Y3 w) k0 u, w
逻辑常量只有两种取值情况:真或假。
% L- j O7 a0 n字符串常量为一个固定的字符串,一般用于程序运行时的信息提示。
/ B3 M3 ~7 s( ~* J$ Q9 g3、 程序中的变量代换
5 x: i8 P7 o1 w3 K( W2 {+ N: W程序中的变量可通过代换操作取得一个常量。代换操作符为 “ $ ” 。 * t9 C/ ]1 h- B/ f5 P
如果在数字变量前面有一个代换操作符 “ $ ” ,编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换 “ $ ” 后的数字变量。
6 {2 w( H. J* }3 B) d- H( s/ N# U如果在逻辑变量前面有一个代换操作符 “ $ ” ,编译器会将该逻辑变量代换为它的取值(真或假)。
3 Q+ O) Y- ?" x n& Q9 o- q如果在字符串变量前面有一个代换操作符 “ $ ” ,编译器会将该字符串变量的值代换 “ $ ” 后的字符串变量。
9 F8 N" E7 \* n! m使用示例:
3 M5 c. |% X5 Y/ V, a) W6 E2 kLCLS S1 ;定义局部字符串变量S1 和S2
+ C8 {7 ^6 _; d8 Y* vLCLS S2 % j" V" {! u3 L6 T; x
S1 SETS “ Test! ” 5 y# `" O, }6 f$ k9 S4 B$ d
S2 SETS “ This is a $S1 ” ;字符串变量S2 的值为 “ This is a Test! ”
8 T0 w# d; I. R' f0 @ |