EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。尽管符号的命名由编程者决定,但并不是任意的,必须遵循以下的约定: — 符号区分大小写,同名的大、小写符号会被编译器认为是两个不同的符号。 . x$ m# l0 F+ A5 j6 l
— 符号在其作用范围内必须唯一。 5 `8 ]) l3 Q1 Z P5 X: g5 V
— 自定义的符号名不能与系统的保留字相同。
7 b4 r+ k5 `: Q— 符号名不应与指令或伪指令同名。 ! M |3 z+ |. l, g. A8 N
1、 程序中的变量
0 |& R3 F4 ?2 k+ C程序中的变量是指其值在程序的运行过程中可以改变的量。 ARM ( Thumb )汇编程序所支持的变量有数字变量、逻辑变量和字符串变量。
' f& E& g9 N3 E; X; W% }数字变量用于在程序的运行中保存数字值,但注意数字值的大小不应超出数字变量所能表示的范围。
& o- `; i6 v( X1 X- f7 P逻辑变量用于在程序的运行中保存逻辑值,逻辑值只有两种取值情况:真或假。
% @; @+ I1 i7 i4 _字符串变量用于在程序的运行中保存一个字符串,但注意字符串的长度不应超出字符串变量所能表示的范围。
" Z- O @4 j, M7 q/ i7 t4 i在 ARM ( Thumb )汇编语言程序设计中,可使用 GBLA 、 GBLL 、 GBLS 伪指令声明全局变量,使用 LCLA 、 LCLL 、 LCLS 伪指令声明局部变量,并可使用 SETA 、 SETL 和 SETS 对其进行初始化。 3 E) i- T; w0 ?9 ]) n# D2 n5 k. W
2、 程序中的常量
0 _6 b) B+ f1 ?$ y; y4 |" O程序中的常量是指其指在程序的运行过程中不能被改变的量。 ARM ( Thumb )汇编程序所支持的常量有数字常量、逻辑常量和字符串常量。 7 H0 A% ~4 f* x5 F
数字常量一般为 32 位的整数,当作为无符号数时,其取值范围为 0 ~ 2 32 -1 ,当作为有符号数时,其取值范围为 -2 31 ~ 2 31 -1 。 4 i6 m3 J4 C# D! r! s* W
逻辑常量只有两种取值情况:真或假。 ! W \( y: f/ j/ r2 e" D9 b
字符串常量为一个固定的字符串,一般用于程序运行时的信息提示。
( H3 X- ^' B/ A9 A; ^6 a3 {3、 程序中的变量代换
; j5 |" e$ r8 y9 a( t程序中的变量可通过代换操作取得一个常量。代换操作符为 “ $ ” 。
" Y/ ?0 `6 f$ Y如果在数字变量前面有一个代换操作符 “ $ ” ,编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换 “ $ ” 后的数字变量。
7 Q1 ?4 C3 w/ G: k4 c如果在逻辑变量前面有一个代换操作符 “ $ ” ,编译器会将该逻辑变量代换为它的取值(真或假)。 5 [9 Z( c8 `% `
如果在字符串变量前面有一个代换操作符 “ $ ” ,编译器会将该字符串变量的值代换 “ $ ” 后的字符串变量。 4 v( u5 H& g+ @$ M2 W. {$ p# q" s
使用示例: % t% j; M: p# e
LCLS S1 ;定义局部字符串变量S1 和S2 $ g* I7 h+ C6 z( p; G$ n4 D7 Y
LCLS S2 $ {- A+ g& @+ _# Z
S1 SETS “ Test! ”
% L3 x' K: U7 C7 yS2 SETS “ This is a $S1 ” ;字符串变量S2 的值为 “ This is a Test! ”
' I# F3 h2 l9 k% p0 |2 L, N; \5 D% o+ s/ O
|