新聞中心

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

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

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

本文引用地址:http://m.butianyuan.cn/article/257041.htm

下面詳細(xì)介紹各指令的語法和使用。

11.4.1ADC指令

(1)編碼格式

帶進(jìn)位的加法指令A(yù)DC的編碼格式如圖11.7所示。

圖11.7ADC指令的編碼格式

帶進(jìn)位的ADC指令和加法指令A(yù)DD配合使用可以實(shí)現(xiàn)多字相加(multi-word),詳見指令集介紹。

(2)指令的語法格式

ADCRd>,Rm>

①Rd>

第一個操作數(shù)寄存器,并且是操作結(jié)果的目的寄存器。

②Rm>

第二操作數(shù)寄存器。

(3)指令操作的偽代碼

Rd=Rd+Rm+CFlag

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom{Rd+Rm+CFlag}

VFlag=OverflowFrom{Rd+Rm+CFlag}

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

ADCSRd>,Rd>,Rm>

11.4.2小立即數(shù)加法指令A(yù)DD(1)

(1)編碼格式

立即數(shù)加法指令A(yù)DD(1)的編碼格式如圖11.8所示。

圖11.8ADD(1)指令的編碼格式

ADD加法指令實(shí)現(xiàn)“小常數(shù)”的加法運(yùn)算,并將相加的結(jié)果保存到指定的寄存器中。

(2)指令的語法格式

ADDRd>,Rn>,#immed_3>

①Rd>

加法操作的目標(biāo)寄存器。

②Rn>

操作數(shù)寄存器。

③#immed_3>

3位的立即數(shù)。該立即數(shù)將和寄存器Rn>的值相加,并將結(jié)果保存到Rd>中。

(3)指令操作的偽代碼

Rd=Rn+immed_3

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom{Rn+immed_3}

VFlag=OverflowFrom{Rn+immed_3}

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

ADDSRd>,Rn>,#immed_3>

11.4.3大立即數(shù)加法指令A(yù)DD(2)

(1)編碼格式

立即數(shù)加法指令A(yù)DD(2)的編碼格式如圖11.9所示。

圖11.9ADD(2)指令的編碼格式

此中形式的ADD(2)指令將一個大的立即數(shù)(8bit)與指定寄存器的值相加,并將運(yùn)算結(jié)果保存到此寄存器中。

(2)指令的語法格式

ADDRd>,#immed_8>

①Rd>

加法操作的目標(biāo)寄存器。

②#immed_8>

8位的立即數(shù)。該立即數(shù)將和寄存器Rd>的值相加,并將結(jié)果保存到Rd>中。

(3)指令操作的偽代碼

Rd=Rd+immed_8

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom{Rn+immed_8}

VFlag=OverflowFrom{Rn+immed_8}

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

ADDSRd>,Rd>,#immed_8>



評論


相關(guān)推薦

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

關(guān)閉