0

执行此代码后r16的值是多少?r17

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?或者他们都被设置为零?是否设置了零标志?

4

1 回答 1

1

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

EOR 逻辑异或

Rd = Rd EOR Rr

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

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

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

于 2015-08-09T22:39:41.083 回答