执行代码后寄存器的值

时间:2015-08-09 22:28:05

标签: microcontroller avr alu

执行此代码后r16r17的值是什么?

ldi r16, 0x06    ;load immediate
ldi r17, 0x0c    ;load immediate
lsl r16          ;logical shift left
eor r16, r17     ;exclusive or

所以我知道逻辑移位后的r16 = 12,使其等于r17。独占或将r16设置为0和r17是否保持为12?或者他们都被设置为零?是否设置了零标志?

1 个答案:

答案 0 :(得分:1)

从显而易见的来源http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_instructions.Arithmetic_and_Logic_Instructions.html

  

EOR Logical Exclusive OR

     

Rd = Rd EOR Rr

所以是的,r16会被覆盖,但r17保持不变。

http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_EOR.html 甚至说明状态寄存器中的零标志会发生什么:它设置为(表示反向,•表示逻辑和)

  

R7¯•R6¯•R5¯•R4¯•R3¯•R2¯•R1¯•R0¯