Thumb指令集之:Thumb数据处理指令

时间:2013-09-30来源:网络

下面详细介绍各指令的语法和使用。

11.4.1ADC指令

(1)编码格式

带进位的加法指令ADC的编码格式如图11.7所示。

图11.7ADC指令的编码格式

带进位的ADC指令和加法指令ADD配合使用可以实现多字相加(multi-word),详见ARM指令集介绍。

(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)对应的ARM指令

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)对应的ARM指令

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>

1 2 3 4 5 6 7 8 9 10 11 12 13

关键词: Thumb指令集 数据处理指令 ARM MOV指令 移位指令

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版