EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。尽管符号的命名由编程者决定,但并不是任意的,必须遵循以下的约定: — 符号区分大小写,同名的大、小写符号会被编译器认为是两个不同的符号。 j9 W" \) b8 B+ C/ i) A0 H
— 符号在其作用范围内必须唯一。
@8 F U1 L8 F! v8 d) x5 Q— 自定义的符号名不能与系统的保留字相同。 ! W# m0 x( W! g% t6 k* Q
— 符号名不应与指令或伪指令同名。
# C8 F/ o" g; h9 _1、 程序中的变量 & j9 }6 Q1 ?2 ^9 V2 c6 M% o
程序中的变量是指其值在程序的运行过程中可以改变的量。 ARM ( Thumb )汇编程序所支持的变量有数字变量、逻辑变量和字符串变量。 ! l3 d2 f, ^4 V ^8 o0 \, l w: }7 B6 E
数字变量用于在程序的运行中保存数字值,但注意数字值的大小不应超出数字变量所能表示的范围。 2 K% w3 ^4 s: c0 n
逻辑变量用于在程序的运行中保存逻辑值,逻辑值只有两种取值情况:真或假。
$ {3 r( y, i/ Y- m4 Z) j" B! r字符串变量用于在程序的运行中保存一个字符串,但注意字符串的长度不应超出字符串变量所能表示的范围。 4 b; T8 r* N5 O1 I# e
在 ARM ( Thumb )汇编语言程序设计中,可使用 GBLA 、 GBLL 、 GBLS 伪指令声明全局变量,使用 LCLA 、 LCLL 、 LCLS 伪指令声明局部变量,并可使用 SETA 、 SETL 和 SETS 对其进行初始化。
# W3 H5 t. n' ^ h* U- t2、 程序中的常量 : H9 ^- j1 W8 Z6 p: F7 x0 a) J
程序中的常量是指其指在程序的运行过程中不能被改变的量。 ARM ( Thumb )汇编程序所支持的常量有数字常量、逻辑常量和字符串常量。
8 ^& E- i5 e) i& ^$ p4 g数字常量一般为 32 位的整数,当作为无符号数时,其取值范围为 0 ~ 2 32 -1 ,当作为有符号数时,其取值范围为 -2 31 ~ 2 31 -1 。 ! m: o+ j" ^4 x7 E. Q
逻辑常量只有两种取值情况:真或假。
' I1 f0 h- e0 U/ M字符串常量为一个固定的字符串,一般用于程序运行时的信息提示。 % |% `9 R5 W7 M3 Q/ a6 ~; Z
3、 程序中的变量代换
/ v; T% r4 D4 e1 ~程序中的变量可通过代换操作取得一个常量。代换操作符为 “ $ ” 。
! N+ i$ b" i1 W如果在数字变量前面有一个代换操作符 “ $ ” ,编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换 “ $ ” 后的数字变量。 : C! z/ t& Q6 v& a1 m' ~* P
如果在逻辑变量前面有一个代换操作符 “ $ ” ,编译器会将该逻辑变量代换为它的取值(真或假)。
3 c a* {0 g% t如果在字符串变量前面有一个代换操作符 “ $ ” ,编译器会将该字符串变量的值代换 “ $ ” 后的字符串变量。 8 f0 `: d6 _* m! C( H
使用示例: / V9 W+ f9 e) F4 o0 r( b1 c4 ~
LCLS S1 ;定义局部字符串变量S1 和S2 4 \' _- Z6 w4 t) p1 v7 K+ ?/ s
LCLS S2 ( r, y6 [6 g: W/ J7 g% P( m
S1 SETS “ Test! ” 1 \9 p; f2 q: p9 b3 H0 T# n. h
S2 SETS “ This is a $S1 ” ;字符串变量S2 的值为 “ This is a Test! ”
$ K/ j' J! Z H# U
$ h' M7 _$ N, E1 B |