久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > Thumb指令集之:Thumb數據處理指令

Thumb指令集之:Thumb數據處理指令

作者: 時間:2013-09-30 來源:網絡 收藏

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

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

11.4.1ADC指令

(1)編碼格式

帶進位的加法指令ADC的編碼格式如圖11.7所示。

圖11.7ADC指令的編碼格式

帶進位的ADC指令和加法指令ADD配合使用可以實現多字相加(multi-word),詳見指令集介紹。

(2)指令的語法格式

ADCRd>,Rm>

①Rd>

第一個操作數寄存器,并且是操作結果的目的寄存器。

②Rm>

第二操作數寄存器。

(3)指令操作的偽代碼

Rd=Rd+Rm+CFlag

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom{Rd+Rm+CFlag}

VFlag=OverflowFrom{Rd+Rm+CFlag}

(4)對應的指令

ADCSRd>,Rd>,Rm>

11.4.2小立即數加法指令ADD(1)

(1)編碼格式

立即數加法指令ADD(1)的編碼格式如圖11.8所示。

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

ADD加法指令實現“小常數”的加法運算,并將相加的結果保存到指定的寄存器中。

(2)指令的語法格式

ADDRd>,Rn>,#immed_3>

①Rd>

加法操作的目標寄存器。

②Rn>

操作數寄存器。

③#immed_3>

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

(3)指令操作的偽代碼

Rd=Rn+immed_3

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom{Rn+immed_3}

VFlag=OverflowFrom{Rn+immed_3}

(4)對應的指令

ADDSRd>,Rn>,#immed_3>

11.4.3大立即數加法指令ADD(2)

(1)編碼格式

立即數加法指令ADD(2)的編碼格式如圖11.9所示。

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

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

(2)指令的語法格式

ADDRd>,#immed_8>

①Rd>

加法操作的目標寄存器。

②#immed_8>

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

(3)指令操作的偽代碼

Rd=Rd+immed_8

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom{Rn+immed_8}

VFlag=OverflowFrom{Rn+immed_8}

(4)對應的ARM指令

ADDSRd>,Rd>,#immed_8>



評論


相關推薦

技術專區

關閉