久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久


ARM數據處理指令尋址方式

分享到(dao):
           

    ARM指(zhi)(zhi)令集可以分(fen)為跳(tiao)轉指(zhi)(zhi)令、數(shu)據(ju)(ju)處理(li)指(zhi)(zhi)令、程序狀(zhuang)態寄存器傳(chuan)輸(shu)指(zhi)(zhi)令、Load/Store指(zhi)(zhi)令、協處理(li)器指(zhi)(zhi)令和異(yi)常(chang)中斷產生指(zhi)(zhi)令。根據(ju)(ju)使(shi)用的指(zhi)(zhi)令類型不(bu)同,指(zhi)(zhi)令的尋(xun)(xun)址(zhi)方式(shi)分(fen)為數(shu)據(ju)(ju)處理(li)指(zhi)(zhi)令尋(xun)(xun)址(zhi)方式(shi)和內存訪問指(zhi)(zhi)令尋(xun)(xun)址(zhi)方式(shi)。本文主(zhu)要介(jie)紹一下ARM數(shu)據(ju)(ju)處理(li)指(zhi)(zhi)令尋(xun)(xun)址(zhi)方式(shi)。

    數(shu)據處理指令的基本語法(fa)格(ge)式如下:

    <opcode> {<cond>} {S} <Rd>,<Rn>,<shifter_operand>

    其(qi)中,<shifter_operand>有11種形式,如表1-1所示。

表1-1   <shifter_operand&gt;的尋(xun)址方式(shi)

語  法 尋 址 方 式
1 #<immediate> 立即數尋址
2 <Rm> 寄存器尋址
3 <Rm>, LSL #<shift_imm> 立即數邏輯左移
4 <Rm>, LSL <Rs> 立即數邏輯左移
5 <Rm>, LSR #<shift_imm> 立即數邏輯右移
6 <Rm>, LSR <Rs> 寄存器邏輯右移
7 <Rm>, ASR #<shift_imm> 立即數算術右移
8 <Rm>, ASR <Rs> 寄存器算術右移
9 <Rm>, ROR #<shift_imm> 立即數循環右移
10 <Rm>, ROR <Rs> 寄存器循環右移
11 <Rm>, RRX 寄存器擴展循環右移

    數據處理指令尋址方式(shi)可以分為以下幾種。

    (1)立即數尋址方式;
    (2)寄存器尋址方式;
    (3)寄(ji)存器移位(wei)尋址方式。

    1.立即數尋址方式

    指令(ling)中的立即數是(shi)由一(yi)個(ge)8bit的常數移(yi)動4bit偶數位(0,2,4,…,26,28,30)得到(dao)的。所以,每一(yi)條指令(ling)都包含(han)一(yi)個(ge)8bit的常數X和移(yi)位值Y,得到(dao)的立即數 = X循環右移(yi)(2×Y)。如圖(tu)1-1所示(shi)


圖1-1 立即數表示方法

    下面列舉了一些有效的立即數:
    0xFF、0x104、0xFF0、0xFF00、0xFF000、0xFF000000、0xF000000F

    下面是一些無效的立即數:
&nbsp;   0x101、0x102、0xFF1、0xFF04、0xFF003、0xFFFFFFFF、0xF000001F

 &nbsp;  下面是一(yi)些(xie)應用立(li)即數的指(zhi)令(ling):

    MOV R0,#0             ;送0到R0
    ADD R3,R3,#1          ;R3的值加1
    CMP R7,#1000          ;R7的值和1000比較
    BIC R9,R8,#0xFF00     ;將(jiang)R8中(zhong)8~15位清零,結(jie)果保存在R9中(zhong)

    2.寄存器尋址方式

    寄存器的(de)值可以(yi)被直接用于數據(ju)操作(zuo)指(zhi)令,這種尋(xun)址(zhi)方(fang)式是各類(lei)處(chu)理器經常采用的(de)一(yi)種方(fang)式,也是一(yi)種執行效率較(jiao)高的(de)尋(xun)址(zhi)方(fang)式,如:

    MOV R2,R0         ;R0的值送R2
    ADD R4,R3,R2       ;R2加R3,結果送R4
&nbsp;   CMP R7,R8         ;比較(jiao)R7和(he)R8的值

    3.寄存器移位尋址方式

    寄(ji)存器的值在被送(song)到ALU之前,可以(yi)(yi)事先經(jing)過桶形移(yi)(yi)位寄(ji)存器的處理。預處理和移(yi)(yi)位發生在同一周期內,所以(yi)(yi)有效地(di)使用移(yi)(yi)位寄(ji)存器,可以(yi)(yi)增加代碼的執行效率(lv)。

   &nbsp;下(xia)面(mian)是一些在指(zhi)令中使(shi)用了(le)移(yi)位操作的例子:

    ADD  R2,R0,R1,LSR  #5
    MOV  R1,R0,LSL  #2
    RSB  R9,R5,R5,LSL  #1
    SUB  R1,R2,R0,LSR  #4
&nbsp;   MOV  R2,R4,ROR  R0

    華清遠見課程推薦:ARM開發培訓班(FSATC1001)本(ben)課(ke)(ke)程(cheng)在涵蓋了(le)ARM公(gong)司授權培訓課(ke)(ke)程(cheng)全部內(nei)容基礎上(shang),結合項目實際(ji),進一(yi)步增加了(le)更(geng)多豐富(fu)的(de)(de)(de)實用內(nei)容,例(li)如ARM接口(kou)開發(fa),從零編寫(xie)bootloader引(yin)導Linux系統,大約占全部課(ke)(ke)程(cheng)的(de)(de)(de)40%內(nei)容,這些內(nei)容不僅為其他課(ke)(ke)程(cheng)打(da)下堅實基礎,而且可(ke)以(yi)使學員具備更(geng)強的(de)(de)(de)實際(ji)動手能力(li),更(geng)貼(tie)近企業用人需求。本(ben)課(ke)(ke)程(cheng)的(de)(de)(de)升(sheng)級同時得到了(le)ARM公(gong)司的(de)(de)(de)首(shou)肯(ken)和大力(li)支持。


   熱點鏈接:

   1、ARM處理器是什么
   2、ARM Cortex A9處理器好嗎

更多新聞>>