<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/257041.htm

          11.4Thumb

          是指那些操作寄存器中數(shù)據(jù)的指令。中的指令集數(shù)據(jù)處理指令的一個(gè)子集,其中包括、算術(shù)指令、、邏輯指令、比較指令和乘法指令。表11.3列出了Thumb數(shù)據(jù)處理指令。

          表11.3 Thumb狀態(tài)數(shù)據(jù)處理指令

          助記符

          說(shuō)明

          操作

          ADCRd,Rm

          帶進(jìn)位的32位加

          Rd:=Rd+Rm+Cflag

          ADDRd,Rn,Rm

          32位加

          Rd:=Rn+Rm

          ADDRd,Rn,#0~#7

          32位加

          Rd:=Rn+3_bit_immed

          ADDRd,#0~#277

          32位加

          Rd:=Rn+8_bit_immed

          ANDRd,Rm

          邏輯與

          Rd:=RdANDRm

          ASRRd,Rm,#1~#32

          算術(shù)右移

          Rd:=RmASR5_bit_immed

          ASRRd,Rs

          算術(shù)右移

          Rd:=RmASRRs

          BICRd,Rm

          位清零

          Rd:=RdANDNOTRm

          CMNRn,Rm

          32位取負(fù)比較

          Rn+Rm并設(shè)置標(biāo)志位

          CMPRn,#0~#255

          32位整數(shù)比較

          Rn-8_bit_immed并設(shè)置標(biāo)志位

          CMPRn,Rm

          32位整數(shù)比較

          Rn-Rm并設(shè)置標(biāo)志位

          EORRd,Rm

          異或

          Rd:=RdEORRm

          LSLRd,Rm,#0~#31

          邏輯左移

          Rd:=RmLSL5_bit_immed

          LSLRd,Rs

          邏輯左移

          Rd:=RdLSLRs

          LSRRd,Rm,#1~#32

          邏輯右移

          Rd:=RmLSR5_bit_immed

          LSRRd,Rs

          邏輯右移

          Rd:=RdLSRRs

          MOVRd,#0~#255

          將數(shù)據(jù)送入寄存器

          Rd:=8_bit_immed

          MOVRd,Rn

          將數(shù)據(jù)送入寄存器

          Rd:=Rn

          MULRd,Rm

          Rd:=Rm*Rd

          MVNRd,Rm

          將32位數(shù)的“反”送入寄存器

          Rd:=NOTRm

          NEGRd,Rm

          求反

          Rd:=0-Rm

          ORRRd,Rm

          邏輯或

          Rd:=RdORRm

          RORRd,Rs

          邏輯右移

          Rd:=RdRORRs

          SBCRd,Rm

          帶進(jìn)位減

          Rd:=Rd-Rm-NOT(CarryFlag)

          SUBRd,Rn,Rm

          Rd:=Rn-Rm

          SUBRd,Rn,#0~#7

          Rd:=Rn-3_bit_immed

          SUBRd,#0~#255

          Rd:=Rn-8_bit_immed

          TSTRn,Rm

          位測(cè)試指令

          RnANDRm并更新標(biāo)志位

          Thumb的數(shù)據(jù)處理指令與等價(jià)的指令使用相同的格式。所有對(duì)r0~r7低8個(gè)寄存器操作的數(shù)據(jù)處理指令都更新條件標(biāo)志位,對(duì)r8~r14和PC高8個(gè)寄存器操作的指令除外,其他指令均不改變條件標(biāo)志位。這些指令包括:

          ·MOVRd,Rn

          ·ADDRd,Rm

          ·CMPRn,Rm

          ·ADDsp,#0~#508

          ·SUBsp,#0~#508

          ·ADDRd,sp,#0~#1020

          ·ADDRd,pc,#0~#1020

          Thumb數(shù)據(jù)處理指令的基本語(yǔ)法格式分為以下8種。

          ①opcode1>Rd>,Rn>,Rm>

          opcode1>:=ADD|SUB

          ②opcode2>Rd>,Rn>,#3_bit_immed>

          opcode2>:=ADD|SUB

          ③opcode3>Rd>|Rn>,#8_bit_immed>

          opcode3>:=ADD|SUB|MOV|CMP

          ④opcode4>Rd>,Rm>,#shift_immed>

          opcode4>:=LSL|LSR|ASR

          ⑤opcode5>Rd>|Rn>,Rm>|Rs>

          opcode5>:=MVN|CMP|CMN|TST|ADC|SBC|NEG|MUL|LSL|LSR|ASR|ROR|AND|EOR|BIC

          ⑥ADDRd>,reg>,#8_bit_immed>

          reg>:=SP|PC

          ⑦opcode6>SP,SP,#7_bit_immed>

          opcode6>:=ADD|SUB

          ⑧opcode7>Rd>|Rn>,Rm>

          opcode7>:=MOV|ADD|CMP

          注意

          上面的指令和語(yǔ)法格式中,3_bit_immed、7_bit_immed、8_bit_immed分別表示3位、7位、8位立即數(shù)。


          上一頁(yè) 1 2 3 4 5 6 7 8 9 10 11 12 13 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();