日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]一個ARM匯編語言源程序的基本結(jié)構(gòu):AREA Init, CODE,READONLYENTRY    Start  LDR R0,=0x3FF5000  LDR R1,0xFF  STRR1,[R0]  LDR R0,=0x3FF5008  LDR R1,0x01  STRR1,[R0]  ... ... ... ... ... .

一個ARM匯編語言源程序的基本結(jié)構(gòu):

AREA Init, CODE,READONLY

ENTRY

    Start

  LDR R0,=0x3FF5000

  LDR R1,0xFF

  STRR1,[R0]

  LDR R0,=0x3FF5008

  LDR R1,0x01

  STRR1,[R0]

  ... ... ... ... ... ...

  END

  在 ARM( Thumb)匯編語言程序中,以程序段為單位組織代碼。

  段是相對獨立的指令或數(shù)據(jù)序列,具有特定的名稱。段可以分為代碼段和數(shù)據(jù)段,代碼段的內(nèi)容為執(zhí)行代碼,數(shù)據(jù)段存放代碼運行時需要用到的數(shù)據(jù)。一個匯編程序至少應(yīng)該有一個代碼段,當程序較長時,可以分割為多個代碼段和數(shù)據(jù)段,多個段在程序編譯鏈接時最終形成一個可執(zhí)行的映象文件。

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

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

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

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

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

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

  2. 一個ARM匯編語言的子程序調(diào)用

     AREA Init, CODE,READONLY

     ENTRY

    Start

     LDR R0,=0x3FF5000

     LDR R1,0xFF

     STRR1,[R0]

     LDR R0,=0x3FF5008

     LDR R1,0x01

     STRR1,[R0]

     BLPRINT_TEXT

     ... ... ... ... ... ...

   PRINT_TEXT

     ... ... ... ... ... ...

     MOVPC,BL

     ... ... ... ... ... ...

     END

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

在程序中,使用指令:

      BL 子程序名

    即可完成子程序的調(diào)用

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


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉