AVR汇编(七):位操作和MCU控制指令¶
位操作指令¶
SBI / CBI¶

SBI 指令用于设置I/O寄存器中的第 b 位, CBI 指令用于清除I/O寄存器中的第 b 位。
例如:
移位¶

LSL 指令用于逻辑左移,低位补0。
LSR 指令用于逻辑右移,高位补0。
ASR 指令用于算术右移,高位补符号位。
ROL 指令用于循环左移,低位补 C 标志位,高位进入 C 标志位。
ROR 指令用于循环右移,高位补 C 标志位,低位进入 C 标志位。
例如:
SWAP¶

SWAP 指令用于交换寄存器的高低4位。
例如:
BSET / BCLR¶

BSET 用于设置 SREG 寄存器中的第 s 位, BCLR 用于清除 SREG 寄存器中的第 s 位。
例如:
BST / BLD¶

BST 用于将寄存器中的第 b 位保存到 T 标志位, BLD 用于将 T 标志位加载到寄存器的第 b 位。
例如:
SEx / CLx¶

形如 SEx 的指令用于设置 SREG 寄存器中对应的标志位,形如 CLx 的指令用于清除 SREG 寄存器中对应的标志位,这两条指令作用和 BSET / BCLR 指令相同。
例如:
MCU控制指令¶

NOP 指令占用一个周期而不做任何操作。
SLEEP 指令用于进入睡眠模式。
WDR 指令用于复位看门狗。
BREAK 指令供调试系统使用,应用程序用不到。