日韩欧美视频第二区,秋霞成人午夜鲁丝一区二区三区,美女日批视频在线观看,av在线不卡免费

電子開發(fā)網(wǎng)

電子開發(fā)網(wǎng)電子設(shè)計 | 電子開發(fā)網(wǎng)Rss 2.0 會員中心 會員注冊
搜索: 您現(xiàn)在的位置: 電子開發(fā)網(wǎng) >> 電子開發(fā) >> 嵌入式系統(tǒng) >> ARM >> 正文

ARM匯編語言程序結(jié)構(gòu)示例

作者:佚名    文章來源:本站原創(chuàng)    點擊數(shù):    更新時間:2017/6/7

ARM匯編語言程序結(jié)構(gòu)示例
詳細(xì)介紹ARM匯編語言之前,先給出一個匯編源程序示例,使讀者對ARM匯編語言程序的結(jié)構(gòu)有一個大概的了解。
    CODE32 ;32位的ARM指令段
    AREA codesec, CODE, READONLY ;代碼段,名稱為codesec,屬性為只讀
    main PROC ;函數(shù)main
    STMFD sp!,{lr} ;保存必要的寄存器和返回地址到數(shù)據(jù)棧
    ADR r0,strhello ;取標(biāo)簽strhello代表的地址值
    BL _ printf ;調(diào)用C運行時庫的_printf函數(shù)打印
    ;“Hello world!”字符串
    BL welcomefun ;調(diào)用子函數(shù)welcomfun
    LDMFD sp!,{pc} ;恢復(fù)寄存器值
    strhello ;strhello代表本地字符串的地址
    DCB "Hello world!\n\0" ;定義一段字節(jié)空間
    ENDP ;函數(shù)main結(jié)束
    welcomefun ;子函數(shù)welcomfun
    STMFD sp!,{lr} ;保存必要的寄存器和返回地址到數(shù)據(jù)棧
    ADR r0,adrstrarm ;取adrstrarm的地址放到寄存器r0中
    LDR r0,[r0,#0] ;將strarm的值放到r0中
    BL _ printf ;調(diào)用C運行時庫的_printf函數(shù)打印
    ;“Welcom to ARM world!”字符串
    LDMFD sp!,{pc} ;恢復(fù)寄存器值
    adrstrarm ;adrstrarm標(biāo)簽
    DCD strarm ;保存strarm的地址
    AREA constdatasec, DATA, READONLY,ALIGN=0 ;數(shù)據(jù)段,名稱為constdatasec,
    ;屬性為只讀
    strarm
    DCB "Welcome to ARM world!\n\0" ;存放“WelcometoARM world!”
    ;字符串
    EXPORT main ;導(dǎo)出main函數(shù)供外部調(diào)用
    ;引入3個C運行時庫函數(shù)和ARM庫
    IMPORT _main
    IMPORT __main
    IMPORT _printf
    IMPORT ||Lib$$Request$$armlib||, WEAK
    END ;程序結(jié)束
    將上面代碼保存為hello.s,Windows系統(tǒng)下在終端輸入命令行:
    armcc -g hello.s -o hello.axf
    將hello.s編譯成映像文件hello.axf。
    運行命令:
    armsd -exec hello.axf
    將出現(xiàn)下面結(jié)果:
    …
    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匯編語言程序結(jié)構(gòu)示例,ARM,匯編語言  
責(zé)任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網(wǎng)友評論
關(guān)于我們 - 聯(lián)系我們 - 廣告服務(wù) - 友情鏈接 - 網(wǎng)站地圖 - 版權(quán)聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
主站蜘蛛池模板: 资溪县| 濮阳县| 景东| 开封县| 泰来县| 务川| 南川市| 大余县| 尉氏县| 吉木乃县| 富阳市| 两当县| 深州市| 石城县| 沭阳县| 渝中区| 江达县| 永德县| 象州县| 嘉定区| 油尖旺区| 扎鲁特旗| 池州市| 寻乌县| 玉环县| 同江市| 霍邱县| 正蓝旗| 海原县| 呼图壁县| 贵州省| 朝阳县| 平陆县| 永清县| 万宁市| 东乌珠穆沁旗| 寿光市| 宿州市| 喀喇| 禹州市| 双柏县|