在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM匯編程序設計之:ARM匯編器所支持的偽操作

            ARM匯編程序設計之:ARM匯編器所支持的偽操作

            作者: 時間:2013-09-30 來源:網(wǎng)絡 收藏

            本文引用地址:http://www.biyoush.com/article/257006.htm

            源程序文件(即源文件)有特定的文件格式和語法規(guī)則,可以使用任意文本編輯器編寫程序代碼。一般地,源程序文件名的后綴如表10.1所示。

            表10.1 源程序文件名后綴

            程序

            文件名

            匯編

            *.S

            引入文件

            *.INC

            C程序

            *.C

            頭文件

            *.H

            在一個項目中,至少要有一個匯編源文件,可以有多個匯編源文件或多個C程序,或者C程序文件和匯編文件兩者的組合。

            ARM匯編語言語句格式如下所示。

            {label}{instruction/directive/pseudo-instruction}{;comment}

            注意

            所有指令均不能頂格寫,要用空格(space)或TAB開頭。

            其中instruction即ARM指令集中的匯編指令。Directive為ARM所支持的。pseudo-instruction為ARM所支持的。下面章節(jié)分別介紹和偽指令。

            10.1ARM所支持的偽操作

            在ARM匯編語言程序里,有一些特殊指令助記符,這些助記符與指令系統(tǒng)的助記符不同,沒有相對應的操作碼,通常稱這些特殊指令助記符為偽操作標識符(directive),它們所完成的操作稱為偽操作。偽操作在源程序中的作用是為完成作各種準備工作的,這些偽操作僅在匯編過程中起作用,一旦匯編結束,偽操作的使命就完成。

            在ARM的中,偽操作主要有、數(shù)據(jù)定義偽操作、匯編控制偽操作、宏指令等。

            10.1.1符號定義(SymbolDefinition)偽操作

            用于定義ARM中的變量、對變量賦值以及定義寄存器的別名等操作。常見的有如下幾種。

            ·用于定義全局變量的GBLA、GBLL和GBLS。

            ·用于定義局部變量的LCLA、LCLL和LCLS。

            ·用于對變量賦值的SETA、SETL、SETS。

            ·為通用寄存器列表定義名稱的RLIST。

            ·為協(xié)處理器寄存器定義別名的CN。

            ·為協(xié)處理器定義別名的CP。

            ·為VFP寄存器定義名稱的DN和SN。

            ·為FPA浮點指針寄存器定義名稱的FPA。

            1.全局變量定義偽操作GBLA、GBLL和GBLS

            (1)語法格式

            GBLA、GBLL和GBLS偽操作用于定義一個ARM程序中的全局變量并將其初始化。其中:

            GBLA偽操作用于定義一個全局的數(shù)字變量并初始化為0。

            GBLL偽操作用于定義一個全局的邏輯變量并初始化為F(假)。

            GBLS偽操作用于定義一個全局的字符串變量并初始化為空。

            由于以上3條偽指令用于定義全局變量,因此在整個程序范圍內(nèi)變量名必須惟一。

            語法格式如下。

            gblx>variable>

            ①gblx>

            取值為GBLA、GBLL、GBLS之一。

            ②variable>

            定義的全局變量名,在其作用范圍內(nèi)必須惟一。全局變量的作用范圍為包含該變量的源程序。

            (2)使用說明

            如果用這些偽操作重新聲明已經(jīng)聲明過的變量,變量的值將被初始化成后一次聲明語句中的值。

            (3)示例

            ①使用偽操作聲明全局變量。

            GBLATest1 ;定義一個全局的數(shù)字變量,變量名為Test1

            Test1SETA0xaa ;將該變量賦值為0xaa

            GBLLTest2 ;定義一個全局的邏輯變量,變量名為Test2

            Test2SETL{TRUE} ;將該變量賦值為真

            GBLSTest3 ;定義一個全局的字符串變量,變量名為Test3

            Test3SETSTesting ;將該變量賦值為“Testing”

            ②聲明變量objectsize并設置其值為0xff,為“SPACE”操作做準備。

            GBLAobjectsize

            ObjectsizeSETAoxff

            SPACEobjectsize

            ③下面的例子顯示如何使用匯編命令設置變量的值。具體做法是使用“-pd”選項。

            Armasm-pdobjectsizeSETAoxff-oobjectfilesourcefile


            上一頁 1 2 3 下一頁

            評論


            相關推薦

            技術專區(qū)

            關閉