EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。尽管符号的命名由编程者决定,但并不是任意的,必须遵循以下的约定: — 符号区分大小写,同名的大、小写符号会被编译器认为是两个不同的符号。
5 J) r! p3 J, A- L& [— 符号在其作用范围内必须唯一。 2 [/ J* O" A: B1 W' V
— 自定义的符号名不能与系统的保留字相同。
/ l* P6 x' z- o* d; f— 符号名不应与指令或伪指令同名。
, u; }3 p+ z; v8 |2 e. \0 Z" c8 D( N& J1、 程序中的变量
- u; l* i2 V- K/ O/ W' l& q程序中的变量是指其值在程序的运行过程中可以改变的量。 ARM ( Thumb )汇编程序所支持的变量有数字变量、逻辑变量和字符串变量。
8 q+ U4 a4 d4 f数字变量用于在程序的运行中保存数字值,但注意数字值的大小不应超出数字变量所能表示的范围。 7 U+ j1 ~4 z) a; I, k
逻辑变量用于在程序的运行中保存逻辑值,逻辑值只有两种取值情况:真或假。
( r2 `" i& J1 j# m# m$ [字符串变量用于在程序的运行中保存一个字符串,但注意字符串的长度不应超出字符串变量所能表示的范围。
/ R6 B3 e" g# u) {# M9 w1 M5 B在 ARM ( Thumb )汇编语言程序设计中,可使用 GBLA 、 GBLL 、 GBLS 伪指令声明全局变量,使用 LCLA 、 LCLL 、 LCLS 伪指令声明局部变量,并可使用 SETA 、 SETL 和 SETS 对其进行初始化。
8 t9 r+ g+ s/ u2 h2、 程序中的常量
, u% ^5 @: {. J3 b. Y程序中的常量是指其指在程序的运行过程中不能被改变的量。 ARM ( Thumb )汇编程序所支持的常量有数字常量、逻辑常量和字符串常量。 & ]& @/ h; y! m0 C) z" K9 K
数字常量一般为 32 位的整数,当作为无符号数时,其取值范围为 0 ~ 2 32 -1 ,当作为有符号数时,其取值范围为 -2 31 ~ 2 31 -1 。
$ V, r0 }4 g& y逻辑常量只有两种取值情况:真或假。
( W9 e: j+ \0 ^) i! h; t& |8 k$ J字符串常量为一个固定的字符串,一般用于程序运行时的信息提示。
2 F2 ^, H {6 k3、 程序中的变量代换
: M1 g* M. V8 B& Q' b% \程序中的变量可通过代换操作取得一个常量。代换操作符为 “ $ ” 。 / i2 d D+ @2 d* M# F/ X3 @
如果在数字变量前面有一个代换操作符 “ $ ” ,编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换 “ $ ” 后的数字变量。
, u9 K* C2 d: y2 c5 c' f6 q如果在逻辑变量前面有一个代换操作符 “ $ ” ,编译器会将该逻辑变量代换为它的取值(真或假)。 . V. d. W1 b. Q3 U
如果在字符串变量前面有一个代换操作符 “ $ ” ,编译器会将该字符串变量的值代换 “ $ ” 后的字符串变量。 . U& @8 o Q. j2 R2 U% W3 _
使用示例:
) I0 I8 F3 P; n$ M& n; c s5 ZLCLS S1 ;定义局部字符串变量S1 和S2
7 X! f2 R% Y6 ]3 C2 k% h eLCLS S2
. ]" ~5 }' L/ J& r# q$ kS1 SETS “ Test! ”
* }9 U9 j' M+ b0 @/ U. C ES2 SETS “ This is a $S1 ” ;字符串变量S2 的值为 “ This is a Test! ”
* A" f1 m( @) F3 w
9 V& F4 w; E: t) B% H/ s |