新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM位操作和偽指令介紹

        ARM位操作和偽指令介紹

        作者: 時間:2016-11-10 來源:網絡 收藏
        ARM匯編程序由指令(ARM指令和偽指令)、偽操作和宏指令組成。
        ARM偽操作:
        GET,通常用于包含定義常量的源文件,如用EQU定義的外設地址,類似于C語言中用include好含頭文件。(匯編語言中被包含的文件常以.inc結尾)GET 2440addr.inc
        AREA、ENTRY和END
        AREA操作常用于定義一個段。通常一個ARM源程序至少需要一個代碼段。
        ENTRY用于指定程序的入口點。
        END用于告訴匯編編譯器源文件已經結束。
        EXPORT和IMPORT
        EXPORT 偽操作用于聲明外部標號,即當前標號是本源文件中定義的,在其他文件中可能會被引用。
        IMPORT 偽操作用于告訴編譯器當前的符號不是本源文件中定義的,而是在其他源文件中定義的,在本源文件中可能引用該符號。
        EQU用于定義常量。提醒,在每條ARM指令前必須有空格,但是用EQU定義常量時,必須頂格寫,否則編譯器會報錯。
        LTORG用于聲明一個文字池,所謂文字池就是一個數據緩沖區。
        ALIGN偽操作通過調整地址指針使當前位置滿足一定的對齊方式。在ARM代碼中要求地址符號是字對齊的。
        MACRO和MEND 偽操作用于宏定義。
        MACRO表示宏定義的開始,MEND表示宏定義的結束。用MACRO和MEND定義的一段代碼,稱為宏體。這樣,在程序中就可以通過宏指令多次調用該代碼段。
        MACRO
        {$label}MACRO Name {$parameter}{$parameter}……
        ;這里添加自己的代碼
        MEND
        MAP和FIELD
        MAP用于定義內存表的首地址,其中MAP也可以用^表示。FIELD用于定義一個內存表中的數據域,其中FIELD可以用#表示。MAP和FIELD組合類似于C語言中定義一個數組,MAP指向數組的首地址,FIELD用于分配數組中的各個元素。
        #define pISR_SWI (*(unsigned*)(_ISR_STARTADDRESS+0x8))
        強制轉換后,可以對pISR_SWI進行賦值,調用。
        _ISR_STARTADDRESS EQU 0x33FFFF00
        ^ _ISR_STARTADDRESS
        HandleReset # 4
        HandleUndef # 4
        HandleSWI # 4
        HandlePabort # 4
        HandleDabort # 4
        ARM偽指令:ADRL;LDR;DCD SPACE


        關鍵詞: ARM位操作偽指

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 陕西省| 金湖县| 大名县| 隆回县| 临海市| 五家渠市| 九龙坡区| 甘泉县| 黑山县| 宜春市| 利津县| 驻马店市| 遂溪县| 连平县| 鄱阳县| 邳州市| 永年县| 东乡族自治县| 峨眉山市| 错那县| 封丘县| 连州市| 通榆县| 红原县| 罗山县| 贵溪市| 大姚县| 舞阳县| 千阳县| 松江区| 怀集县| 兰坪| 阿拉善右旗| 开江县| 临潭县| 邮箱| 军事| 启东市| 阿鲁科尔沁旗| 石门县| 广丰县|