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

            新聞中心

            linux 下arm匯編語(yǔ)法

            作者: 時(shí)間:2016-11-20 來(lái)源:網(wǎng)絡(luò) 收藏
            第一部分 Linux下ARM匯編語(yǔ)法
            盡管在Linux下使用C或C++編寫(xiě)程序很方便,但匯編源程序用于系統(tǒng)最基本的初始化,如初始化堆棧指針、設(shè)置頁(yè)表、操作ARM的協(xié)處理器等。初始化完成后就可以跳轉(zhuǎn)到C代碼執(zhí)行。需要注意的是,GNU的匯編器遵循AT&T的匯編語(yǔ)法,可以從GNU的站點(diǎn)(www.gnu.org)上下載有關(guān)規(guī)范。

            一. Linux匯編行結(jié)構(gòu)
            任何匯編行都是如下結(jié)構(gòu):
            [:] [} @ comment
            [:] [} @ 注釋
            Linux ARM 匯編中,任何以冒號(hào)結(jié)尾的標(biāo)識(shí)符都被認(rèn)為是一個(gè)標(biāo)號(hào),而不一定非要在一行的開(kāi)始。
            定義一個(gè)"add"的函數(shù),返回兩個(gè)參數(shù)的和。
            .section .text, “x”
            .global add @ give the symbol add external linkage
            add:
            ADD r0, r0, r1 @ add input arguments
            MOV pc, lr @ return from subroutine
            @ end of program

            二. Linux 匯編程序中的標(biāo)號(hào)
            標(biāo)號(hào)只能由a~z,A~Z,0~9,“.”,_等字符組成。當(dāng)標(biāo)號(hào)為0~9的數(shù)字時(shí)為局部標(biāo)號(hào),局部標(biāo)號(hào)可以重復(fù)出現(xiàn),使用方法如下:
            ? 標(biāo)號(hào)f: 在引用的地方向前的標(biāo)號(hào)
            ? 標(biāo)號(hào)b: 在引用的地方向后的標(biāo)號(hào)
            使用局部符號(hào)的例子,一段循環(huán)程序
            1:
            subs r0,r0,#1 @每次循環(huán)使r0=r0-1
            bne 1f @跳轉(zhuǎn)到1標(biāo)號(hào)去執(zhí)行
            局部標(biāo)號(hào)代表它所在的地址,因此也可以當(dāng)作變量或者函數(shù)來(lái)使用。

            三. Linux匯編程序中的分段
            (1).section偽操作
            用戶可以通過(guò).section偽操作來(lái)自定義一個(gè)段,格式如下:
            .section section_name [, "flags"[, %type[,flag_specific_arguments]]]
            每一個(gè)段以段名為開(kāi)始, 以下一個(gè)段名或者文件結(jié)尾為結(jié)束。這些段都有缺省的標(biāo)志(flags),連接器可以識(shí)別這些標(biāo)志。(與armasm中的AREA相同)。

            下面是ELF格式允許的段標(biāo)志
            <標(biāo)志> 含義
            a 允許段
            w 可寫(xiě)段
            x 執(zhí)行段

            定義段
            .section .mysection @自定義數(shù)據(jù)段,段名為 “.mysection”
            .align 2
            strtemp:
            .ascii "Temp string n