试题详情
简答题试比较TST与ANDS,CMP与SUBS,MOV与MVN指令的区别。
  • (1)TST指令把两个操作数进行按位的与操作,并根据运算结果更新CPSR中的条件标志位的值。该指令通常用来检测是否设置了特定的位,一般操作数1是要测试的数据,而操作数2是一个位掩码。
    ANDS指令用于在两个操作数上进行逻辑与运算,并把结果放到目的寄存器中,操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或是1个立即数。该指令常用于设置操作数1的某些位。TST和ANDS两条指令都影响CPSR寄存器;TST指令不改变参与运算的数据,而ANDS指令对目的寄存器进行更新。
    (2)CMP指令用于把2个操作数进行比较,同时更新CPSR中条件标志位的值。该指令进行一次减法运算,但不保存运算结果,只更改条件标志位。标志位表示的是操作数1和操作数2 的关系(大、小、相等)。SUBS 指令用于把操作数1送去操作数2,并将结果存放到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器、被移位的寄存器、或是一个立即数。指令影响CPSR值。
    C.MP和SUBS指令都影响CPSR寄存器;CMP指令不保存运算结果,而SUBS指令可以保存运算结果,并且减数和被减数的值也不发生变化。
    (3)MOV指令将一个寄存器、被移位的寄存器或一个立即数的值装入目的寄存器内,可以指定相同的寄存器实现NOP的效果,还可以移位一个寄存器。
    MVN指令与MOV指令的不同之处是在传送数据之前先按位取反,即把一个被取反的值传送到目的寄存器中。
  • 关注下方微信公众号,在线模考后查看

热门试题