在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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>

            新聞中心

            ARM匯編偽指令介紹

            作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏


            4、MEXIT
            語法格式:
            MEXIT
            MEXIT用于從宏定義中跳轉(zhuǎn)出去。

            其他常用的偽指令
            還有一些其他的偽指令,在匯編程序中經(jīng)常會被使用,包括以下幾條:
            AREA
            ALIGN
            CODE16CODE32
            ENTRY
            END
            EQU
            EXPORT(或GLOBAL
            IMPORT
            EXTERN
            GET(或INCLUDE
            INCBIN
            RN
            ROUT
            1、AREA
            語法格式:
            AREA段名屬性1,屬性2,……
            AREA偽指令用于定義一個代碼段或數(shù)據(jù)段。其中,段名若以數(shù)字開頭,則該段名需用|括起來,如|1_test|。
            屬性字段表示該代碼段(或數(shù)據(jù)段)的相關(guān)屬性,多個屬性用逗號分隔。常用的屬性如下:
            CODE屬性:用于定義代碼段,默認(rèn)為READONLY。
            DATA屬性:用于定義數(shù)據(jù)段,默認(rèn)為READWRITE。
            READONLY屬性:指定本段為只讀,代碼段默認(rèn)為READONLY。
            READWRITE屬性:指定本段為可讀可寫,數(shù)據(jù)段的默認(rèn)屬性為READWRITE。
            ALIGN屬性:使用方式為ALIGN表達(dá)式。在默認(rèn)時,ELF(可執(zhí)行連接文件)的代碼段和數(shù)據(jù)段是按字對齊的,表達(dá)式的取值范圍為031,相應(yīng)的對齊方式為2表達(dá)式次方。
            COMMON屬性:該屬性定義一個通用的段,不包含任何的用戶代碼和數(shù)據(jù)。各源文件中同名的COMMON段共享同一段存儲單元。
            一個匯編語言程序至少要包含一個段,當(dāng)程序太長時,也可以將程序分為多個代碼段和數(shù)據(jù)段。
            使用示例:
            AREAInit,CODE,READONLY
            該偽指令定義了一個代碼段,段名為Init,屬性為只讀

            2、ALIGN
            語法格式:
            ALIGN{表達(dá)式{,偏移量}}
            ALIGN偽指令可通過添加填充字節(jié)的方式,使當(dāng)前位置滿足一定的對其方式|。其中,表達(dá)式的值用于指定對齊方式,可能的取值為2的冪,如1、2、4、8、16等。若未指定表達(dá)式,則將當(dāng)前位置對齊到下一個字的位置。偏移量也為一個數(shù)字表達(dá)式,若使用該字段,則當(dāng)前位置的對齊方式為:2的表達(dá)式次冪+偏移量。
            使用示例:
            AREAInitCODE,READONLY,ALIEN3;指定后面的指令為8字節(jié)對齊。
            指令序列
            END

            3、CODE16、CODE32
            語法格式:
            CODE16(或CODE32
            CODE16偽指令通知編譯器,其后的指令序列為16位的Thumb指令。
            CODE32偽指令通知編譯器,其后的指令序列為32位的ARM指令。
            若在匯編源程序中同時包含ARM指令和Thumb指令時,可用CODE16偽指令通知編譯器其后的指令序列為16位的Thumb指令,CODE32偽指令通知編譯器其后的指令序列為32位的ARM指令。因此,在使用ARM指令和Thumb指令混合編程的代碼里,可用這兩條偽指令進(jìn)行切換,但注意他們只通知編譯器其后指令的類型,并不能對處理器進(jìn)行狀態(tài)的切換。
            使用示例:
            AREAInitCODE,READONLY
            ……
            CODE32;通知編譯器其后的指令為32位的ARM指令
            LDRR0,=NEXT1;將跳轉(zhuǎn)地址放入寄存器R0
            BXR0;程序跳轉(zhuǎn)到新的位置執(zhí)行,并將處理器切換到Thumb工作狀態(tài)
            ……
            CODE16;通知編譯器其后的指令為16位的Thumb指令
            NEXTLDRR3,=0x3FF
            ……
            END;程序結(jié)束

            4、ENTRY
            語法格式:
            ENTRY
            ENTRY偽指令用于指定匯編程序的入口點。在一個完整的匯編程序中至少要有一個ENTRY(也可以有多個,當(dāng)有多個ENTRY時,程序的真正入口點由鏈接器指定),但在一個源文件里最多只能有一個ENTRY(可以沒有)。
            使用示例:
            AREAInit,CODE,READONLY
            ENTRY;指定應(yīng)用程序的入口點
            ……

            5、END
            語法格式:
            END
            END偽指令用于通知編譯器已經(jīng)到了源程序的結(jié)尾。
            使用示例:
            AREAInit,CODE,READONLY
            ……
            END;指定應(yīng)用程序的結(jié)尾

            6、EQU
            語法格式:
            名稱EQU表達(dá)式{,類型}
            EQU偽指令用于為程序中的常量、標(biāo)號等定義一個等效的字符名稱,類似于C語言中的#define
            其中EQU可用*代替。
            名稱為EQU偽指令定義的字符名稱,當(dāng)表達(dá)式為32位的常量時,可以指定表達(dá)式的數(shù)據(jù)類型,可以有以下三種類型:
            CODE16CODE32DATA
            使用示例:
            TestEQU50;定義標(biāo)號Test的值為50
            AddrEQU0x55,CODE32;定義Addr的值為0x55,且該處為32位的ARM指令。

            7、EXPORT(或GLOBAL)
            語法格式:
            EXPORT標(biāo)號{[WEAK]}
            EXPORT偽指令用于在程序中聲明一個全局的標(biāo)號,該標(biāo)號可在其他的文件中引用。EXPORT可用GLOBAL代替。標(biāo)號在程序中區(qū)分大小寫,[WEAK]選項聲明其他的同名標(biāo)號優(yōu)先于該標(biāo)號被引用。
            使用示例:
            AREAInit,CODEREADONLY
            EXPORTStest;聲明一個可全局引用的標(biāo)號Stest……
            END

            8、IMPORT
            語法格式:
            IMPORT標(biāo)號{[WEAK]}
            IMPORT偽指令用于通知編譯器要使用的標(biāo)號在其他的源文件中定義,但要在當(dāng)前源文件中引用,而且無論當(dāng)前源文件是否引用該標(biāo)號,該標(biāo)號均會被加入到當(dāng)前源文件的符號表中。
            標(biāo)號在程序中區(qū)分大小寫,[WEAK]選項表示當(dāng)所有的源文件都沒有定義這樣一個標(biāo)號時,編譯器也不給出錯誤信息,在多數(shù)情況下將該標(biāo)號置為0,若該標(biāo)號為BBL指令引用,則將BBL指令置為NOP操作。
            使用示例:
            AREAInitCODE,READONLY
            IMPORTMain;通知編譯器當(dāng)前文件要引用標(biāo)號Main,但Main在其他源文件中定義……
            END

            9、EXTERN
            語法格式:
            EXTERN標(biāo)號{[WEAK]}
            EXTERN偽指令用于通知編譯器要使用的標(biāo)號在其他的源文件中定義,但要在當(dāng)前源文件中引用,如果當(dāng)前源文件實際并未引用該標(biāo)號,該標(biāo)號就不會被加入到當(dāng)前源文件的符號表中。標(biāo)號在程序中區(qū)分大小寫,[WEAK]選項表示當(dāng)所有的源文件都沒有定義這樣一個標(biāo)號時,編譯器也不給出錯誤信息,在多數(shù)情況下將該標(biāo)號置為0,若該標(biāo)號為BBL指令引用,則將BBL指令置為NOP操作。
            使用示例:
            AREAInit,CODE,READONLY
            EXTERNMain;通知編譯器當(dāng)前文件要引用標(biāo)號Main,但Main在其他源文件中定義……
            END

            10、GET(或INCLUDE)
            語法格式:
            GET文件名
            GET偽指令用于將一個源文件包含到當(dāng)前的源文件中,并將被包含的源文件在當(dāng)前位置進(jìn)行匯編處理??梢允褂?wbr />INCLUDE代替GET。
            匯編程序中常用的方法是在某源文件中定義一些宏指令,用EQU定義常量的符號名稱,用MAP和FIELD定義結(jié)構(gòu)化的數(shù)據(jù)類型,然后用GET偽指令將這個源文件包含到其他的源文件中。使用方法與C語言中的include相似。
            GET偽指令只能用于包含源文件,包含目標(biāo)文件需要使用INCBIN偽指令
            使用示例:
            AREAInit,CODE,READONLY
            GETa1.s;通知編譯器當(dāng)前源文件包含源文件a1.s
            GETC:a2.s;通知編譯器當(dāng)前源文件包含源文件C:a2.s……
            END

            11、INCBIN
            語法格式:
            INCBIN文件名
            INCBIN偽指令用于將一個目標(biāo)文件或數(shù)據(jù)文件包含到當(dāng)前的源文件中,被包含的文件不作任何變動的存放在當(dāng)前文件中,編譯器從其后開始繼續(xù)處理。
            使用示例:
            AREAInitCODE,READONLY
            INCBINa1.dat;通知編譯器當(dāng)前源文件包含文件a1.dat
            INCBINC:a2.txt;通知編譯器當(dāng)前源文件包含文件C:a2.txt……
            END

            12、RN
            語法格式:
            名稱RN表達(dá)式
            RN偽指令用于給一個寄存器定義一個別名。采用這種方式可以方便程序員記憶該寄存器的功能。其中,名稱為給寄存器定義的別名,表達(dá)式為寄存器的編碼。
            使用示例:
            TempRNR0;將R0定義一個別名Temp

            13、ROUT
            語法格式:
            {名稱}ROUT
            ROUT偽指令用于給一個局部變量定義作用范圍。在程序中未使用該偽指令時,局部變量的作用范圍為所在的AREA,而使用ROUT后,局部變量的作為范圍為當(dāng)前ROUT和下一個ROUT之間。

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

            上一頁 1 2 下一頁

            關(guān)鍵詞: ARM匯編偽指

            評論


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

            關(guān)閉