新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM匯編程序設計之:匯編語言文件格式

        ARM匯編程序設計之:匯編語言文件格式

        作者: 時間:2013-09-30 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/257046.htm

        10.3匯編語言

        10.3.1匯編語言語句格式

        (Thumb)匯編語法語句格式如下所示。

        {}{|directive|pseudo-}{;comment}

        程序符號。通常為地址標號(label)。在指令和偽指令中通常為標號;在一些偽操作中符號可能是變量或常數。詳見偽操作一節。

        在書寫中,符號必須從一行的行頭開始,前面不能包含空格或制表符tab。

        ARM或Thumb指令。

        ③directive

        偽操作。詳見ARM偽操作一節。

        ④pseudo-instruction

        ARM偽指令。詳見ARM偽指令一節。

        ⑤comment

        語句注釋。注釋以分號(;)開頭,注釋的結尾即為一行的結尾。為了程序清晰易讀,注釋也可以單獨占用一行。匯編器在對程序進行匯編時忽略注釋。

        在匯編語言程序設計中,每一條指令的助記符可以全部用大寫或全部用小寫,但不允許在一條指令中大、小寫混用。

        同時,如果一條語句太長,可將該長語句分為若干行來書寫,在行的末尾用“”表示下一行與本行為同一條語句。

        10.3.2ARM匯編語言中的符號

        在匯編語言程序設計中,經常使用各種符號代替地址(addresses)、變量(variables)和常量(constants)等,以增加程序的靈活性和可讀性。盡管符號的命名由編程者決定,但并不是任意的,必須遵循以下的約定。

        (1)符號區分大小寫,同名的大、小寫符號會被編譯器認為是兩個不同的符號。

        (2)符號在其作用范圍內必須惟一。

        (3)自定義的符號名不能與系統的保留字相同。其中保留字包括系統內部變量

        (builtinvariable)和系統預定義(predefined)的符號。

        (4)符號名不應與指令或偽指令同名。如果要使用和指令或偽指令同名的符號要用雙斜杠“||”將其括起來,如“||ASSERT||”。

        注意

        雖然符號被雙斜杠括起來,但雙斜杠并非符號名的一部分。

        (5)局部標號以數字開頭,其他的符號都不能以數字開頭。

        1.變量(variable)

        程序中的變量是指其值在程序的運行過程中可以改變的量。ARM(Thumb)所支持的變量有三種。

        ·數字變量(numeric)。

        ·邏輯變量(logical)。

        ·字符串變量(string)。

        數字變量用于在程序的運行中保存數字值,但注意數字值的大小不應超出數字變量所能表示的范圍。

        邏輯變量用于在程序的運行中保存邏輯值,邏輯值只有兩種取值情況:真({TURE})和假({FALSE})。

        字符串變量用于在程序的運行中保存一個字符串,注意字符串的長度不應超出字符串變量所能表示的范圍。

        在ARM(Thumb)匯編語言程序設計中,可使用GBLA、GBLL、GBLS偽指令聲明全局變量,使用LCLA、LCLL、LCLS偽指令聲明局部變量,可使用SETA、SETL和SETS對其進行初始化。

        2.常量(constants)

        程序中的常量是指其值在程序的運行過程中不能被改變的量。ARM(Thumb)所支持的常量有數字常量、邏輯常量和字符串常量。

        數字常量一般為32位的整數,當作為無符號數時,其取值范圍為0~232−1,當作為有符號數時,其取值范圍為−231~231−1。匯編器認為−n和232−n是相等的。對于關系操作,如比較兩個數的大小,匯編器將其操作數看作無符號的數,也就是說“0>−1”,對匯編器來說取值為“假({FLASE})”。

        邏輯常量只有兩種取值情況,真或假。

        字符串常量為一個固定的字符串,一般用于程序運行時的信息提示。

        3.程序中的變量代換

        匯編語言中的變量可以作為作為一整行出現在中,也可以作為行的一部分使用。

        如果在數字變量前面有一個代換操作符“$”,編譯器會將該數字變量的值轉換為十六進制的字符串,并將該十六進制的字符串代換“$”后的數字變量。

        如果在邏輯變量前面有一個代換操作符“$”,編譯器會將該邏輯變量代換為它的取值(真或假)。

        如果在字符串變量前面有一個代換操作符“$”,編譯器會將該字符串變量的值代換“$”后的字符串變量。

        如果程序中需要字符“$”,則可以用“$$”來表示。匯編器將不進行變量替換,而是將“$$”作為“$”。


        上一頁 1 2 3 4 5 6 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泗阳县| 甘洛县| 新田县| 景德镇市| 疏附县| 霍城县| 禄丰县| 封丘县| 吉隆县| 双辽市| 耒阳市| 长顺县| 民勤县| 原平市| 额济纳旗| 慈溪市| 屏南县| 法库县| 阜新市| 化隆| 横山县| 平武县| 崇仁县| 长岛县| 齐齐哈尔市| 天气| 和硕县| 濮阳市| 阳城县| 永胜县| 星子县| 当涂县| 德昌县| 东城区| 咸丰县| 红原县| 南阳市| 桂林市| 特克斯县| 扎兰屯市| 民县|