18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 嵌入式係統 >> ARM >> 正文

ARM匯編語言程序結構示例

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2017-6-7

ARM匯編語言程序結構示例
詳細介紹ARM匯編語言之前,先給出一個(ge) 匯編源程序示例,使讀者對ARM匯編語言程序的結構有一個(ge) 大概的了解。
    CODE32 ;32位的ARM指令段
    AREA codesec, CODE, READONLY ;代碼段,名稱為(wei) codesec,屬性為(wei) 隻讀
    main PROC ;函數main
    STMFD sp!,{lr} ;保存必要的寄存器和返回地址到數據棧
    ADR r0,strhello ;取標簽strhello代表的地址值
    BL _ printf ;調用C運行時庫的_printf函數打印
    ;“Hello world!”字符串
    BL welcomefun ;調用子函數welcomfun
    LDMFD sp!,{pc} ;恢複寄存器值
    strhello ;strhello代表本地字符串的地址
    DCB "Hello world!\n\0" ;定義(yi) 一段字節空間
    ENDP ;函數main結束
    welcomefun ;子函數welcomfun
    STMFD sp!,{lr} ;保存必要的寄存器和返回地址到數據棧
    ADR r0,adrstrarm ;取adrstrarm的地址放到寄存器r0中
    LDR r0,[r0,#0] ;將strarm的值放到r0中
    BL _ printf ;調用C運行時庫的_printf函數打印
    ;“Welcom to ARM world!”字符串
    LDMFD sp!,{pc} ;恢複寄存器值
    adrstrarm ;adrstrarm標簽
    DCD strarm ;保存strarm的地址
    AREA constdatasec, DATA, READONLY,ALIGN=0 ;數據段,名稱為(wei) constdatasec,
    ;屬性為(wei) 隻讀
    strarm
    DCB "Welcome to ARM world!\n\0" ;存放“WelcometoARM world!”
    ;字符串
    EXPORT main ;導出main函數供外部調用
    ;引入3個(ge) C運行時庫函數和ARM庫
    IMPORT _main
    IMPORT __main
    IMPORT _printf
    IMPORT ||Lib$$Request$$armlib||, WEAK
    END ;程序結束
    將上麵代碼保存為(wei) hello.s,Windows係統下在終端輸入命令行:
    armcc -g hello.s -o hello.axf
    將hello.s編譯成映像文件hello.axf。
    運行命令:
    armsd -exec hello.axf
    將出現下麵結果:
    …
    1 ARM7TDMI, BIU, Little endian, Semihosting, Debug Comms Channel, 4GB, Mapfile,
    2 Timer, Profiler, Tube, Millisecond [20000 cycles_per_millisecond], Pagetables,
    3 IntCtrl, Tracer, RDI Codesequences
    4 Object program file wangt.axf
    5 Hello world!
    6 Welcome to ARM world!
    7 Program terminated normally at PC = 0x00009f70 (_sys_exit + 0x8)
    8 +0008 0x00009f70: 0xef123456 V4.. : swi 0x123456
    9 Quitting

Tags:ARM匯編語言程序結構示例,ARM,匯編語言  
責任編輯:admin
  • 上一篇文章:
  • 下一篇文章: 沒有了
  • 請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
    1分 2分 3分 4分 5分

    還可以輸入 200 個字
    [ 查看全部 ] 網友評論
    關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
    返回頂部
    刷新頁麵
    下到頁底
    晶體管查詢