带进位逻辑操作指令
LSL Rd 0≤d≤31
说明:寄存器Rd中所有位左移1位,第0位清0,第7位移到SREG中的C标志位。该指令完成一个无符号数乘以2的操作。
操作:C←b7b6b5b4b3b2b1b0←0 PC←PC+1
LSR Rd 0≤d≤31
说明:寄存器Rd中所有位右移1位,第7位清0,第0位移到SREG中的C标志位。该指令完成一个无符号数除以2的操作,C标志用于结果舍入。
操作:C→b7b6b5b4b3b2b1b0→0 PC←PC+1
ROL Rd 0≤d≤31
说明:寄存器Rd的所有位左移1位,C标志被移到Rd的第0位,Rd的第7位移到C标志位。
操作:C←b7b6b5b4b3b2b1b0←C PC←PC+1
ROR Rd 0≤d≤31
说明:寄存器Rd的所有位右移1位,C标志被移到Rd的第7位,Rd的第0位移到C标志位。
操作:C→b7b6b5b4b3b2b1b0→C PC←PC+1
ASR Rd 0≤d≤31
说明:寄存器Rd的所有位右移1位,而第7位保持原逻辑值,第0位装入SREG的C标志位。这个操作实现2的补码值除以2,而不改变符号,进位标志用于结果的舍入。
操作:b7→b7b6b5b4b3b2b1b0→C PC←PC+1
SWAP Rd 0≤d≤31
说明:寄存器Rd的高半字节与低半字节交换。
操作:b7b6b5b4←→b3b2b1b0 PC←PC+1
位变量传送指令
BST Rr,d 0≤d≤31,0≤b≤7
说明:把寄存器Rr中的位b存储到SREG状态寄存器中的T标志位。
操作:T←Rr(b) PC←PC+1
BLD Rd,b 0≤d≤31,0≤b≤7
说明:复制SREG状态寄存器的T标志到寄存器Rd中的位b。
操作:Rr(b)←T PC←PC+1
位变量修改指令
BSET s 0≤s≤7
说明:置位状态寄存器SREG的某一位标志。
操作:SREG(s)←1 PC←PC+1
BCLR s 0≤s≤7
说明:清0状态寄存器SREG的某一位标志。
操作:SREG(s)←0 PC←PC+1
SBI P,b 0≤P≤31,0≤b≤7
说明:对P指定的I/O寄存器的指定位置位。该指令只在32个I/O寄存器内操作,I/O寄存器地址为0~31。
操作:I/O(P,b)←1 PC←PC+1
CBI P,b 0≤P≤31,0≤b≤7
说明:对P指定的I/O寄存器的指定位清0。该指令只在32个I/O寄存器内操作,I/O寄存器地址为0~31。
操作:I/O(P,b)←0 PC←PC+1
SEC
说明:置位SREG状态寄存器中的进位标志C。
操作:C←1 PC←PC+1
CLC
说明:清0 SREG状态寄存器中的进位标志C。
操作:C←0 PC←PC+1
SEN
说明:置位SREG状态寄存器中的负数标志N。
操作:N←1 PC←PC+1
CLN
说明:清0 SREG状态寄存器中的负数标志N。
操作:N←0 PC←PC+1
SEZ
说明:置位SREG状态寄存器中的零标志Z。
操作:Z←1 PC←PC+1
CLZ
说明:清0 SREG状态寄存器中的零标志Z。
操作:Z←0 PC←PC+1
SEI
说明:置位SREG状态寄存器中的全局中断标志I。
操作:I←1 PC←PC+1
CLI
说明:清0 SREG状态寄存器中的全局中断标志I。
操作:I←0 PC←PC+1
SES
说明:置位SREG状态寄存器中的符号标志S。
操作:S←1 PC←PC+1
CLS
说明:清0 SREG状态寄存器中的符号标志S。
操作:S←0 PC←PC+1
SEV
说明:置位SREG状态寄存器中的溢出标志V。
操作:V←1 PC←PC+1
CLV
说明:清0 SREG状态寄存器中的溢出标志V。
操作:V←0 PC←PC+1
SET
说明:置位SREG状态寄存器中的T标志。
操作:T←1 PC←PC+1
CLT
说明:清0 SREG状态寄存器中的T标志。
操作:T←0 PC←PC+1
SEH
说明:置位SREG状态寄存器中的半进位标志H。
操作:H←1 PC←PC+1
CLH
说明:清0 SREG状态寄存器中的半进位标志H。
操作:H←0 PC←PC+1
MCU控制指令
NOP
说明:该指令完成一个周期空操作
操作:无
SLEEP
说明:该指令使MCU进入休眠方式运行。休眠模式由MCU控制寄存器定义。当MCU在休眠状态下由一个中断唤醒时,在中断程序执行后,紧跟在休眠指令后的指令将被执行。
操作:PC←PC+1
WDR
说明:该指令清0看门狗定时器。在允许使用看门狗定时器情况下,系统程序在正常运行中必须在WD预定比例器给出的限定时间内执行一次该指令,以防止看门狗定时器溢出,造成系统复位。
操作:PC←PC+1