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

            作者: 時間:2016-11-11 來源:網(wǎng)絡 收藏
            ARM ( Thumb )匯編語言程序中,以程序段為單位組織代碼。段是相對獨立的指令或數(shù)據(jù)序列,具有特定的名稱。段可以分為代碼段和數(shù)據(jù)段,代碼段的內(nèi)容為執(zhí)行代碼,數(shù)據(jù)段存放代碼運行時需要用到的數(shù)據(jù)。一個匯編程序至少應該有一個代碼段,當程序較長時,可以分割為多個代碼段和數(shù)據(jù)段,多個段在程序編譯鏈接時最終形成一個可執(zhí)行的映象文件。

            可執(zhí)行映象文件通常由以下幾部分構成:

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

            — 一個或多個代碼段,代碼段的屬性為只讀。

            — 零個或多個包含初始化數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段的屬性為可讀寫。

            — 零個或多個不包含初始化數(shù)據(jù)的數(shù)據(jù)段,數(shù)據(jù)段的屬性為可讀寫。

            鏈接器根據(jù)系統(tǒng)默認或用戶設定的規(guī)則,將各個段安排在存儲器中的相應位置。因此源程序中段之間的相對位置與可執(zhí)行的映象文件中段的相對位置一般不會相同。

            以下是一個匯編語言源程序的基本結構:

            AREA Init , CODE , READONLY

            ENTRY

            Start

            LDR R0 , =0x3FF5000

            LDR R1 , 0xFF

            STR R1 , [R0]

            LDR R0 , =0x3FF5008

            LDR R1 , 0x01

            STR R1 , [R0]

            ┉┉

            END

            在匯編語言程序中,用 AREA 偽指令定義一個段,并說明所定義段的相關屬性,本例定義一個 名為 Init 的代碼段,屬性為只讀。 ENTRY 偽指令標識程序的入口點,接下來為指令序列,程序的末尾為 END 偽指令,該偽指令告訴編譯器源文件的結束,每一個匯編程序段都必須有一條 END 偽指令,指示代碼段的結束。 ARM匯編語言中的子程序調用




            在 ARM 匯編語言程序中,子程序的調用一般是通過 BL 指令來實現(xiàn)的。在程序中,使用指令:

            BL 子程序名

            即可完成子程序的調用。

            該指令在執(zhí)行時完成如下操作:將子程序的返回地址存放在連接寄存器 LR 中,同時將程序計器 PC 指向子程序的入口點,當子程序執(zhí)行完畢需要返回調用處時,只需要將存放在 LR 中的返回地址重新拷貝給程序計數(shù)器 PC 即可。在調用子程序的同時,也可以完成參數(shù)的傳遞和從子程序回運算的結果,通??梢允褂眉拇嫫?R0 ~ R3 完成。

            以下是使用 BL 指令調用子程序的匯編語言源程序的基本結構:

            AREA Init , CODE , READONLY

            ENTRY

            Start

            LDR R0 , =0x3FF5000

            LDR R1 , 0xFF

            STR R1 , [R0]

            LDR R0 , =0x3FF5008

            LDR R1 , 0x01

            STR R1 , [R0]

            BL PRINT_TEXT

            ┉┉

            PRINT_TEXT

            ┉┉

            MOV PC,BL

            ┉┉

            END



            評論


            技術專區(qū)

            關閉