EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。尽管符号的命名由编程者决定,但并不是任意的,必须遵循以下的约定: — 符号区分大小写,同名的大、小写符号会被编译器认为是两个不同的符号。
: A. l S& m4 r& e— 符号在其作用范围内必须唯一。
7 J* n/ z& f! O$ ]! g+ W— 自定义的符号名不能与系统的保留字相同。 1 z5 r5 v8 H9 y. l4 J
— 符号名不应与指令或伪指令同名。
. f1 P4 g1 x- T0 } M# s2 B0 z* U1、 程序中的变量
7 {1 S; k2 @/ o8 P6 u程序中的变量是指其值在程序的运行过程中可以改变的量。 ARM ( Thumb )汇编程序所支持的变量有数字变量、逻辑变量和字符串变量。
* V3 c* M8 m0 k/ m/ R! D6 v: R数字变量用于在程序的运行中保存数字值,但注意数字值的大小不应超出数字变量所能表示的范围。
( W9 o* q P# n' A e0 w# T7 t g逻辑变量用于在程序的运行中保存逻辑值,逻辑值只有两种取值情况:真或假。 6 i6 o+ ~1 y1 Y0 l
字符串变量用于在程序的运行中保存一个字符串,但注意字符串的长度不应超出字符串变量所能表示的范围。
% D, I$ U& V0 w7 \, Z在 ARM ( Thumb )汇编语言程序设计中,可使用 GBLA 、 GBLL 、 GBLS 伪指令声明全局变量,使用 LCLA 、 LCLL 、 LCLS 伪指令声明局部变量,并可使用 SETA 、 SETL 和 SETS 对其进行初始化。 . `0 c$ R; L+ T w; g2 i+ W
2、 程序中的常量
. k* e7 i, H' q2 l C/ g% _, K' \程序中的常量是指其指在程序的运行过程中不能被改变的量。 ARM ( Thumb )汇编程序所支持的常量有数字常量、逻辑常量和字符串常量。 ' q3 K" @+ j9 X0 y3 ^( J
数字常量一般为 32 位的整数,当作为无符号数时,其取值范围为 0 ~ 2 32 -1 ,当作为有符号数时,其取值范围为 -2 31 ~ 2 31 -1 。 1 b7 \4 r& e: m6 C" F
逻辑常量只有两种取值情况:真或假。 7 f0 F( @. c/ }
字符串常量为一个固定的字符串,一般用于程序运行时的信息提示。
8 A7 A' G5 {( L4 G0 L9 \; K: k3、 程序中的变量代换 : q" S, W3 k7 x/ ^0 O
程序中的变量可通过代换操作取得一个常量。代换操作符为 “ $ ” 。
( E7 L$ L3 ~# S如果在数字变量前面有一个代换操作符 “ $ ” ,编译器会将该数字变量的值转换为十六进制的字符串,并将该十六进制的字符串代换 “ $ ” 后的数字变量。
: s. V: c# l4 I8 ]( c如果在逻辑变量前面有一个代换操作符 “ $ ” ,编译器会将该逻辑变量代换为它的取值(真或假)。
. Y S/ S0 K. i; B如果在字符串变量前面有一个代换操作符 “ $ ” ,编译器会将该字符串变量的值代换 “ $ ” 后的字符串变量。 2 D. H9 F% @9 b6 Z
使用示例:
Q! k( d1 q- R2 oLCLS S1 ;定义局部字符串变量S1 和S2
5 `4 q# `, u4 v! G$ TLCLS S2 1 B( P h4 z# t7 z8 o6 q% y
S1 SETS “ Test! ”
! F2 D: Q# K! Y7 o8 v( g, dS2 SETS “ This is a $S1 ” ;字符串变量S2 的值为 “ This is a Test! ”
1 O, u; z( \9 E; A% ^5 f) u |