新闻中心

EEPW首页>嵌入式系统>设计应用> Thumb指令集之:Thumb数据处理指令

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

作者: 时间:2013-09-30 来源:网络 收藏

本文引用地址://m.amcfsurvey.com/article/257041.htm

11.4.4寄存器加法指令ADD(3)

(1)编码格式

寄存器加法指令ADD(3)的编码格式如图11.10所示。

图11.10ADD(3)指令的编码格式

此种形式的加法指令将两个寄存器的值相加,将结果放入第三个目标寄存器,并根据操作结果更新标志位。

(2)指令的语法格式

ADDRd>,Rn>,Rm>

①Rd>

加法操作的目标寄存器。

②Rn>

操作数寄存器。存放加法操作的第一个操作数。

③Rm>

操作数寄存器。存放加法操作的第二个操作数。

(3)指令操作的伪代码

Rd=Rn+Rm

NFlag=Rd[31]

ZFlag=ifRd==0then1else0

CFlag=CarryFrom(Rn+Rm)

VFlag=OverflowFrom(Rn+Rm)

11.4.5寄存器加法指令ADD(4)

(1)编码格式

寄存器加法指令ADD(4)的编码格式如图11.11所示。

图11.11ADD(4)指令的编码格式

此种形式的加法指令将两个寄存器的值相加,将结果放入第三个目标寄存器。该指令不更新程序状态字的标志位。

注意

该指令与ADD(3)的区别在于其操作数寄存器。该指令的操作数寄存器为r8~r14和PC高寄存器。操作结果对程序状态字的标志位没有影响。

(2)指令的语法格式

ADDRd>,Rm>

①Rd>

指令的操作数寄存器,其中保存加法操作的一个操作数,并将指令的操作结果放入该寄存器。取值范围为r0~r15。

②Rm>

操作数寄存器。存放加法操作的第二个操作数。可以为r0~r15的任意寄存器。

(3)指令操作的伪代码

Rd=Rd+Rm

11.4.6PC相关加法指令ADD(5)

(1)编码格式

寄存器加法指令ADD(5)的编码格式如图11.12所示。

图11.12ADD(5)指令的编码格式

该指令将一个立即数和PC值相加,并将PC相关地址写入目标寄存器。立即数可以是0~1020范围内的任意数值的4倍。该指令不更新程序状态字的标志位。

(2)指令的语法格式

ADDRd>,PC,#immed_8>×4

①Rd>

指令的目的寄存器,存放指令的操作结果。

②PC

PC相关地址。

③immed_8>

加到PC值上的8位立即数。

(3)指令操作的伪代码

Rd=(PCAND0xfffffffc)+(immed_82)



评论


相关推荐

技术专区

关闭