在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

      EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Thumb指令集之:Thumb數(shù)據(jù)處理指令

      Thumb指令集之:Thumb數(shù)據(jù)處理指令

      作者: 時(shí)間:2013-09-30 來源:網(wǎng)絡(luò) 收藏

      本文引用地址:http://www.biyoush.com/article/257041.htm

      11.4.10算術(shù)右移指令A(yù)SR(1)

      (1)編碼格式

      算術(shù)右移指令A(yù)SR(1)的編碼格式如圖11.16所示。

      圖11.16ASR(1)指令的編碼格式

      這種形式的算術(shù)右移指令可以方便的實(shí)現(xiàn)將一個(gè)寄存器的值除以一個(gè)常數(shù)。該常數(shù)是以2為底的冪。

      (2)指令的語(yǔ)法格式

      ASRRd>,Rm>,#immed_5>

      ①Rd>

      目的寄存器。用于存放指令操作的結(jié)果。

      ②Rm>

      操作數(shù)寄存器。存放將要被右移的數(shù)據(jù)。

      ③immed_5>

      指定右移的位數(shù)。該常數(shù)取值范圍為1~31。

      (3)指令操作的偽代碼

      Ifimmed_5==0

      CFlag=Rm[31]

      IfRm[31]==0then

      Rd=0

      Else/*Rm[31]==1*/

      Rd=0xffffffff

      Else/*immed_5>0*/

      CFlag=Rm[immed_5-1]

      Rd=RmArithmetic_shift_Rightimmed_5

      NFlag=Rd[31]

      ZFlag=ifRd==0then1else0

      VFlag=unaffected

      (4)對(duì)應(yīng)的指令

      MOVSRd>,Rm>,ASR#immed_5>

      注意

      v5以前的體系結(jié)構(gòu)版本中,沒有單獨(dú)的Thumb。在v6版本中已經(jīng)增加了位移指令,詳細(xì)信息請(qǐng)參加ARM體系結(jié)構(gòu)相關(guān)文檔。

      11.4.11算術(shù)右移指令A(yù)SR(2)

      (1)編碼格式

      算術(shù)右移指令A(yù)SR(2)的編碼格式如圖11.17所示。

      圖11.17ASR(2)指令的編碼格式

      此種形式的ASR指令的操作數(shù)均為寄存器。該指令根據(jù)指令的操作結(jié)果更新程序狀態(tài)字的標(biāo)志位。

      (2)指令的語(yǔ)法格式

      ASRRd>,Rs>

      ①Rd>

      存放指令的操作數(shù)和操作結(jié)果。

      ②Rs>

      指定操作數(shù)將要被移動(dòng)的位數(shù)。

      (3)指令操作的偽代碼

      IfRs[7:0]==0then

      CFlag=unaffected

      Rd=unaffected

      ElseifRs[7:0]32then

      CFlag=Rd[Rs[7:0]-1]

      Rd=Rdarithmetic_shift_RightRs[7:0]

      Else/*Rs[7:0]>=32*/

      CFlag=Rd[31]

      IfRd[31]==0then

      Rd=0

      Else/*Rd[31]==1*/

      Rd=0xffffffff

      NFlag=Rd[31]

      ZFlag=ifRd==0then1else0

      VFlag=unaffected

      (4)對(duì)應(yīng)的ARM指令

      MOVSRd>,Rd>,ASRRs>

      11.4.12位清零指令BIC

      (1)編碼格式

      位清零指令BIC的編碼格式如圖11.18所示。

      圖11.18BIC指令的編碼格式

      BIC指令將兩個(gè)寄存器的值按位做“異或”操作。該指令根據(jù)指令的執(zhí)行結(jié)果更新程序狀態(tài)字的標(biāo)志位。

      (2)指令的語(yǔ)法格式

      BICRd>,Rm>

      ①Rd>

      存放指令的操作數(shù)和操作結(jié)果。

      ②Rm>

      操作數(shù)寄存器,該寄存器中的數(shù)據(jù)的反碼將會(huì)和Rd>中的值做“與”操作。

      (3)指令操作的偽代碼

      Rd=RdANDNOTRm

      NFlag=Rd[31]

      ZFlag=ifRd==0then1else0

      CFlag=unaffected

      VFlag=unaffected

      (4)對(duì)應(yīng)的ARM指令

      BICSRd>,Rd>,Rm>



      評(píng)論


      相關(guān)推薦

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

      關(guān)閉