中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

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

        ARM匯編程序設(shè)計(jì)之:ARM匯編器所支持的偽操作

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

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

        2.局部變量定義LCLA、LCLL和LCLS

        (1)語法格式

        LCLA、LCLL和LCLS偽指令用于定義一個程序中的局部變量并將其初始化。其中:

        LCLA用于定義一個局部的數(shù)字變量并初始化為0。

        LCLL用于定義一個局部的邏輯變量并初始化為F(假)。

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

        以上三條偽操作用于聲明局部變量,在其作用范圍內(nèi)變量名必須惟一。

        語法格式如下。

        lclx>variable>

        ①gblx>

        取值為LCLA、LCLL、LCLS之一。

        ②variable>

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

        (2)使用說明

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

        (3)示例

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

        LCLATest4 ;聲明一個局部的數(shù)字變量,變量名為Test4

        Test3SETA0xaa ;將該變量賦值為0xaa

        LCLLTest5 ;聲明一個局部的邏輯變量,變量名為Test5

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

        LCLSTest6 ;定義一個局部的字符串變量,變量名為Test6

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

        ②下面的例子定義一個宏,顯示了局部變量的作用范圍。

        MACRO ;聲明一個宏

        $labelmessage$a ;宏原型

        LCLSerr ;聲明局部字符串變量

        $label

        INFO0,err:CC::STR:$a

        MEND ;宏結(jié)束,局部變量不再起作用

        3.變量賦值偽操作SETA、SETL和SETS

        (1)語法格式

        偽指令SETA、SETL和SETS用于給一個已經(jīng)定義的全局變量或局部變量賦值。

        SETA偽操作用于給一個數(shù)學(xué)變量賦值;

        SETL偽操作用于給一個邏輯變量賦值;

        SETS偽操作用于給一個字符串變量賦值;

        語法格式如下。

        Variablesetx>expr

        ①Variable

        變量名為已經(jīng)定義過的全局變量或局部變量,表達(dá)式為將要賦給變量的值。

        ②setx>

        取值為SETA、SETL、SETS之一。

        ③expr

        數(shù)學(xué)、邏輯或字符串表達(dá)式,也就是將要賦予變量的值。

        (2)使用說明

        在向變量賦值前必須先聲明變量。

        也可以在匯編指令中預(yù)定義變量,如:

        Armasm--pdobjectsizeSETAoxff--oobjectfilesourcefile

        (3)示例

        ①為預(yù)先定義的變量賦值。

        LCLATest3 ;聲明一個局部的數(shù)字變量,變量名為Test3

        Test3SETA0xaa ;將該變量賦值為0xaa

        LCLLTest4 ;聲明一個局部的邏輯變量,變量名為Test4

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

        LCLSTest6 ;定義一個局部的字符串變量,變量名為Test6

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

        ②使用變量賦值偽操作,定義一些程序相關(guān)內(nèi)容。

        GBLAversionNumber

        VersionNumber SETA21

        GBLLDebug

        Debug SETL{TRUE}

        GBLS versionString

        VersionString SETSversion1.0

        4.通用寄存器列表定義偽操作RLIST

        (1)語法格式

        RLIST偽操作可用于對一個通用寄存器列表定義名稱,使用該偽操作定義的名稱可在指令LDM/STM中使用。在LDM/STM指令中,列表中的寄存器訪問次序根據(jù)寄存器的編號由低到高,與列表中的寄存器排列次序無關(guān)。

        語法格式如下。

        NameRLIST{list-of-registers}

        ①Name

        寄存器列表的名稱。

        注意

        該名稱不能和已經(jīng)定義寄存器或協(xié)處理器名稱相同。

        ②list-of-registers

        通用寄存器列表。列表中的寄存器用“,”隔開,如果是編號連續(xù)的通用寄存器可以用“-”指定寄存器范圍。具體用法參見程序示例。

        (2)使用說明

        在使用匯編編譯器編譯源文件時,可以使用“-checkreg”選項(xiàng)來指定進(jìn)行寄存器檢查。如果檢測到寄存器列表中的寄存器編號非升序排列,將給出編譯警告。

        (3)示例

        ①將寄存器列表名稱定義為RegList,可在ARM指令LDM/STM中通過該名稱訪問寄存器列表。

        RegListRLIST{R0-R5,R8,R10};

        ②使用“-”在寄存器列表中,指定寄存器范圍。

        ContextRLIST{r0-r6,r8,r10-r12,r15} ;



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉