新闻中心

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

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

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

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

11.4.13比较指令CMN

(1)编码格式

比较指令CMN的编码格式如图11.19所示。

图11.19CMN指令的编码格式

比较指令CMN将一个寄存器的值和另一个寄存器的值取负做比较,并根据比较结果更新程序状态字的标志位。程序中比较指令后通常跟条件执行指令。

(2)指令的语法格式

CMNRn>,Rm>

①Rn>

操作数寄存器。用于存放指令的第一个操作数。

②Rm>

操作数寄存器。用于存放指令的第二个操作数。

(3)指令操作的伪代码

Alu_out=Rn+Rm

NFlag=alu_out[31]

ZFlag=ifalu_out==0then1else0

CFlag=NOTBorrowFrom(Rn+Rm)

VFlag=OverflowFrom(Rn+Rm)

(4)对应的指令

CMNRn>,Rm>

11.4.14比较指令CMP(1)

(1)编码格式

比较指令CMP(1)的编码格式如图11.20所示。

图11.20CMP(1)指令的编码格式

比较指令CMP(1)将一个寄存器的值和8位立即数做比较,并根据比较结果更新程序状态字的标志位。程序中比较指令后通常跟条件执行指令。

(2)指令的语法格式

CMPRn>,#immed_8>

①Rn>

操作数寄存器。

②immed_8>

8位常数。将与寄存器Rn>的值做比较。

(3)指令操作的伪代码

Alu_out=Rn–immed_8

NFlag=alu_out[31]

ZFlag=ifalu_out==0then1else0

CFlag=NOTBorrowFrom(Rn–immed_8)

VFlag=OverflowFrom(Rn–immed_8)

(4)对应的指令

CMPRn>,#immed_8>

11.4.15比较指令CMP(2)

(1)编码格式

比较指令CMP(2)的编码格式如图11.21所示。

图11.21CMP(2)指令的编码格式

比较指令CMP(2)将两个寄存器的值做比较,并根据比较结果更新程序状态字的标志位。程序中比较指令后通常跟条件执行指令。

(2)指令的语法格式

CMPRn>,Rm>

①Rn>

操作数寄存器,存放比较的第一个操作数。

②Rm>

操作数寄存器,存放比较的第二个操作数。

(3)指令操作的伪代码

alu_out=Rn–Rm

NFlag=alu_out[31]

ZFlag=ifalu_out==0then1else0

CFlag=NOTBorrowFrom(Rn-Rm)

VFlag=OverflowFrom(Rn-Rm)

(4)对应的指令

CMPRn>,Rm>



评论


相关推荐

技术专区

关闭