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

            新聞中心

            ARM指令解析

            作者: 時間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
            今天我來總結(jié)一下arm指令的學(xué)習(xí),今天我不會對所有的arm指令進(jìn)行一一的解析,在這里希望大家去看arm匯編手冊,這個手冊的中文版我放在了http://download.csdn.net/detail/wrjvszq/8324589大家先拿到這個文檔,這個文檔對arm指令的解析相當(dāng)?shù)娜?,但是這里要注意的是文檔是arm對標(biāo)準(zhǔn)的匯編寫出的文檔,但是我們要用的是gnu的匯編,這兩個稍微有點(diǎn)區(qū)別,關(guān)于區(qū)別大家可以去看看這個博客http://www.cnblogs.com/hnrainll/archive/2011/05/17/2048315.html說完了這些,今天我的重點(diǎn)將會放在arm偽指令和arm協(xié)處理器訪問指令進(jìn)行解析。
            l偽指令
            1、為什需要偽指令
            要解決這個問題我們先要了解一下機(jī)器碼,同樣我們要用到在arm寄存器解析那一節(jié)用到的《ARM Architecture Reference Manual》這本資料在我們學(xué)習(xí)arm的過程中十分重要。說到機(jī)器碼我們必須要看看arm的機(jī)器編碼格式

            28~31bits(cond):是條件碼,就是表明這條語句里是否有大于、等于、非零等的條件判斷,這4bits共有16種狀態(tài),分別為:
            二進(jìn)制碼指令符號含義二進(jìn)制碼指令符號含義
            0EQ相等1NE不等
            0010CS/HS進(jìn)位/無符號數(shù)大于等于0011CC/LO清進(jìn)位/無符號數(shù)小于
            0100MI減/負(fù)數(shù)0101PL加/正數(shù)或0
            0110VS溢出0VC沒溢出
            1HI無符號數(shù)大于1001LS無符號數(shù)小于等于
            1010GE有符號數(shù)大于等于1011LT有符號數(shù)小于
            1100GT有符號數(shù)大于1101LE有符號數(shù)小于等于
            0AL任何條件1-未定義
            25bit(I)是用來區(qū)別shifer_operand域是采用立即數(shù)尋址方式還是寄存器尋址方式,該bit為0表示寄存器尋址方式,為1表示立即數(shù)尋址方式。
            21~24bits(opcode)是指令碼,用來表明這條指令是什么指令。
            12~15bits(Rd)是指令中的目的寄存器,存放寄存器的4bits編號
            0~11bits(shifter_operand)指令的操作數(shù)。
            我們可以看到指令的操作數(shù)最多只能為12位(其實(shí)中間還有4位用作別的用途,因此只有8位來表示立即數(shù)或者寄存器),難以解決多余8位的數(shù),因此引入偽指令來解決。
            2、偽指令解析
            偽指令主要在編譯的時候起作用,它本身不產(chǎn)生機(jī)器碼,而是在編譯的時候起作用,告訴編譯器如何編譯,另一種作用就是轉(zhuǎn)換為其他的實(shí)際的指令。
            下面介紹幾個常見的GNU風(fēng)格的偽指令(一般會在前面加一個點(diǎn)’.’):
            (1)global:把一個符號定義為全局的。
            (2)data:用來定義數(shù)據(jù)段。
            (3)ascii:字符串類型的數(shù)據(jù)。
            (4)byte:字節(jié)型數(shù)據(jù)
            (5)word:子數(shù)據(jù)
            (6)equ:類似于C語言的宏定義
            (7)align:控制對齊。加在需要被對齊(被調(diào)整)的標(biāo)號(地址/指令)之前
            l協(xié)處理器指令
            1.什么是協(xié)處理器
            用于執(zhí)行特定的任務(wù),減輕處理器核的負(fù)擔(dān)。一共可以支持16個協(xié)處理器,cp15是最重要的一個協(xié)處理器。
            2.CP15的作用
            系統(tǒng)控制協(xié)處理器,提供了很多額外的寄存器,通過這些寄存器我們可以控制和配置cache,MMU,時鐘系統(tǒng)等。訪問他主要是訪問他的寄存器,從而達(dá)到對系統(tǒng)的控制。
            3.CP15的寄存器訪問
            1.mcr:從通用寄存器到協(xié)處理器的寄存器
            2.mrc:從協(xié)處理器的寄存器到通用寄存器
            這里只是說到他的簡單用法,更多內(nèi)容參考《ARM Architecture Reference Manual》(一定要多讀英文文檔)。
            以上是自己的arm指令的簡單理解,希望各位提出寶貴意見。


            關(guān)鍵詞: ARM指令解

            評論


            技術(shù)專區(qū)

            關(guān)閉