6.10 TEQ测试相等指令 1.指令的编码格式 TEQ(Test Equivalence)测试指令用于将一个寄存器的值和一个算术值做比较。条件 标志位根据两个操作数做“逻辑或”后的结果设置。以便后面的指令根据相应的条件标志 来判断是否执行。 指令的编码格式如图 6.11所示。 cond 00 I 1001 1 Rn SBZ shifter_operand 图 6.11 TEQ指令编码格式 注意 TEQ类似于 TST。区别是这里的概念上的计算是 EOR而不是 AND。这提供了一种查看两个操 作数是否相同而又不影响进位标志(不像 CMP那样)的方法。 2.指令的语法格式 TEQ{<cond>} <Rn>,<shifter_operand> ① <cond> 为指令编码中的条件域。它指示指令在什么条件下执行。当<cond>忽略时,指令为无条 件执行(cond=AL(Alway))。 ② <Rn> 指定第一个源操作数寄存器。 ③ <shifter_operand> 使用 ARM的通用寻址模式确定第二个源操作数。它影响指令编码格式中的 I(bit[25]) 位和 shifter_operand(bits[11∶0])位。 注意 当指令的编码格式中 I位等于 0,并且移位操作数 shifter_operand中 bit[7]和 bit[4]也都等于 1, 则指令并非 TEQ指令。详情请参阅 ARM系统结构参考手册。 3.指令操作的伪代码 指令操作的伪代码如下面程序段所示。 If ConditionPassed{cond} then ALU_out = Rn EOR shifter_operand N Flag = ALU_out[31] Z Flag = if ALU_out==0 then 1 else 0 C Flag =shifter_carry_out V Falg=unaffected
- 粉丝: 23
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助