新聞中心

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://m.butianyuan.cn/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ù)專區(qū)

關(guān)閉