EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。尽管符号的命名由编程者决定,但并不是任意的,必须遵循以下的约定: — 符号区分大小写,同名的大、小写符号会被编译器认为是两个不同的符号。
; D0 J. [7 i0 Y. o5 H— 符号在其作用范围内必须唯一。
/ _, S9 z( ] ^) |9 ~+ e: Z— 自定义的符号名不能与系统的保留字相同。
3 O2 r5 o7 a9 S" x— 符号名不应与指令或伪指令同名。
% K0 ]$ P. e# C: k) D; c1、 程序中的变量
& w& M2 V" }1 z/ S/ E程序中的变量是指其值在程序的运行过程中可以改变的量。 ARM ( Thumb )汇编程序所支持的变量有数字变量、逻辑变量和字符串变量。
- ?8 b! y+ h1 F1 Y% ?7 j& g( ]$ r数字变量用于在程序的运行中保存数字值,但注意数字值的大小不应超出数字变量所能表示的范围。
0 R2 F' G8 w7 L/ h1 u逻辑变量用于在程序的运行中保存逻辑值,逻辑值只有两种取值情况:真或假。
z, |0 C) T+ o1 u, E* y- t. D" o字符串变量用于在程序的运行中保存一个字符串,但注意字符串的长度不应超出字符串变量所能表示的范围。 ; v% _# `1 [: f3 Y
在 ARM ( Thumb )汇编语言程序设计中,可使用 GBLA 、 GBLL 、 GBLS 伪指令声明全局变量,使用 LCLA 、 LCLL 、 LCLS 伪指令声明局部变量,并可使用 SETA 、 SETL 和 SETS 对其进行初始化。
# D9 o9 ~# A. M0 C6 K. q+ Q1 [2、 程序中的常量 " _7 n3 S5 d: y0 V
程序中的常量是指其指在程序的运行过程中不能被改变的量。 ARM ( Thumb )汇编程序所支持的常量有数字常量、逻辑常量和字符串常量。 ( }5 a7 J* s( Z: |! A
数字常量一般为 32 位的整数,当作为无符号数时,其取值范围为 0 ~ 2 32 -1 ,当作为有符号数时,其取值范围为 -2 31 ~ 2 31 -1 。 - z! a- d G' T' C+ r# `
逻辑常量只有两种取值情况:真或假。
' `4 E2 v+ d. c0 [3 \- A6 n字符串常量为一个固定的字符串,一般用于程序运行时的信息提示。 $ {' ]5 I( R9 R7 c1 t) ]
3、 程序中的变量代换 3 I* t" M0 z0 k/ f& b7 q
程序中的变量可通过代换操作取得一个常量。代换操作符为 “ $ ” 。 d, j0 z" C4 |+ r1 k4 _
如果在数字变量前面有一个代换操作符 “ $ ” ,编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换 “ $ ” 后的数字变量。 / S1 M" D9 T' s# \1 b* `
如果在逻辑变量前面有一个代换操作符 “ $ ” ,编译器会将该逻辑变量代换为它的取值(真或假)。 . F2 d. o% C- n3 q+ p
如果在字符串变量前面有一个代换操作符 “ $ ” ,编译器会将该字符串变量的值代换 “ $ ” 后的字符串变量。 + O: n H6 A8 p Q& ?+ K8 f3 @8 l* C
使用示例: 9 F, t. B! d* N( ~
LCLS S1 ;定义局部字符串变量S1 和S2
' f- ~7 c6 u; WLCLS S2 # f) K* K" H, J4 v
S1 SETS “ Test! ” + @3 j. V$ W' _) u
S2 SETS “ This is a $S1 ” ;字符串变量S2 的值为 “ This is a Test! ” * }+ u, U$ ~' I& g
|