ARM匯編語言程序中常用的符號(hào)
在匯編語言程序設(shè)計(jì)中,經(jīng)常使用各種符號(hào)代替地址、變量和常量等,以增加程序的可讀性。盡管符號(hào)的命名由編程者決定,但并不是任意的,必須遵循以下的約定:
— 符號(hào)區(qū)分大小寫,同名的大、小寫符號(hào)會(huì)被編譯器認(rèn)為是兩個(gè)不同的符號(hào)。
— 符號(hào)在其作用范圍內(nèi)必須唯一。
— 自定義的符號(hào)名不能與系統(tǒng)的保留字相同。
— 符號(hào)名不應(yīng)與指令或偽指令同名。
1、 程序中的變量
程序中的變量是指其值在程序的運(yùn)行過程中可以改變的量。 ARM ( Thumb )匯編程序所支持的變量有數(shù)字變量、邏輯變量和字符串變量。
數(shù)字變量用于在程序的運(yùn)行中保存數(shù)字值,但注意數(shù)字值的大小不應(yīng)超出數(shù)字變量所能表示的范圍。
邏輯變量用于在程序的運(yùn)行中保存邏輯值,邏輯值只有兩種取值情況:真或假。
字符串變量用于在程序的運(yùn)行中保存一個(gè)字符串,但注意字符串的長度不應(yīng)超出字符串變量所能表示的范圍。
在 ARM ( Thumb )匯編語言程序設(shè)計(jì)中,可使用 GBLA 、 GBLL 、 GBLS 偽指令聲明全局變量,使用 LCLA 、 LCLL 、 LCLS 偽指令聲明局部變量,并可使用 SETA 、 SETL 和 SETS 對(duì)其進(jìn)行初始化。
2、 程序中的常量
程序中的常量是指其指在程序的運(yùn)行過程中不能被改變的量。 ARM ( Thumb )匯編程序所支持的常量有數(shù)字常量、邏輯常量和字符串常量。
數(shù)字常量一般為 32 位的整數(shù),當(dāng)作為無符號(hào)數(shù)時(shí),其取值范圍為 0 ~ 2 32 -1 ,當(dāng)作為有符號(hào)數(shù)時(shí),其取值范圍為 -2 31 ~ 2 31 -1 。
邏輯常量只有兩種取值情況:真或假。
字符串常量為一個(gè)固定的字符串,一般用于程序運(yùn)行時(shí)的信息提示。
3、 程序中的變量代換
程序中的變量可通過代換操作取得一個(gè)常量。代換操作符為 “ $ ” 。
如果在數(shù)字變量前面有一個(gè)代換操作符 “ $ ” ,編譯器會(huì)將該數(shù)字變量的值轉(zhuǎn)換為十六進(jìn)制的字符串,并將該十六進(jìn)制的字符串代換 “ $ ” 后的數(shù)字變量。
如果在邏輯變量前面有一個(gè)代換操作符 “ $ ” ,編譯器會(huì)將該邏輯變量代換為它的取值(真或假)。
如果在字符串變量前面有一個(gè)代換操作符 “ $ ” ,編譯器會(huì)將該字符串變量的值代換 “ $ ” 后的字符串變量。
使用示例:
LCLS S1 ;定義局部字符串變量S1 和S2
LCLS S2
S1 SETS “ Test! ”
S2 SETS “ This is a $S1 ” ;字符串變量S2 的值為 “ This is a Test! ”