AVR单片机指令系统
计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。
AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。
SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令, 而我们所做的11个实验程序仅用了34条指令, 我们重点讲这34条指令, 其余指令就可自学了。
AVR器件(指令速查表) 118条指令器件
AT90S2313/2323/2343/2333 ,AT90S4414/4433/4434/8515,AT90S8534/8535
算术和逻辑指令
|
BRCC k
|
C清零转
|
位指令和位测试指令
|
|||
ADD Rd,Rr
|
加法
|
BRSH k
|
≥转
|
SBI P,b
|
置位I/O位
|
|
ADC Rd,Rr
|
带进位加
|
BRLO k
|
小于转(无符号)
|
CBI P,b
|
清零I/O位
|
|
◇ ADIW Rdl,K
|
加立即数
|
BRMI k
|
负数转移
|
LSL Rd
|
左移
|
|
SUB Rd,Rr
|
减法
|
BRPL k
|
正数转移
|
LSR Rd
|
右移
|
|
SUBI Rd,Rr
|
减立即数
|
BRGE k
|
≥转(带符号)
|
ROL Rd
|
带进位左循环
|
|
SBC Rd,Rr
|
带进位减
|
BRLT k
|
小于转(带符号)
|
ROR Rd
|
带进位右循环
|
|
SBCI Rd,K
|
带C减立即数
|
BRHS k
|
H置位转移
|
ASR Rd
|
算术右移
|
|
◇ SBIW Rdl,K
|
减立即数
|
BRHC k
|
H清零转移
|
SWAP Rd
|
半字节交换
|
|
AND Rd,Rr
|
与
|
BRTS k
|
T置位转移
|
BSET s
|
置位SREG
|
|
ANDI Rd,K
|
与立即数
|
BRTC k
|
T清零转移
|
BCLR s
|
清零SREG
|
|
OR Rd,Rr
|
或
|
BRVS k
|
V置位转移
|
BST Rr,b
|
Rr的b位送T
|
|
ORI Rd,K
|
或立即数
|
BRVC k
|
V清零转移
|
BLD Rd
|
T送Rr的b位
|
|
EOR Rd,Rr
|
异或
|
BRIE k
|
中断位置位转移
|
SEC
|
置位C
|
|
COM Rd
|
取反
|
BRID k
|
中断位清零转移
|
CLC
|
清零C
|
|
NEG Rd
|
取补
|
数据传送指令
|
SEN
|
置位N
|
||
SBR Rd,K
|
寄存器位置位
|
MOV Rd,Rr
|
寄存器传送
|
CLN
|
清零N
|
|
CBR Rd,K
|
寄存器位清零
|
◇ LDI Rd,K
|
装入立即数
|
SEZ
|
置位Z
|
|
INC Rd
|
加1
|
◇ LD Rd, X
|
X间接取数
|
CLZ
|
清零Z
|
|
DEC Rd
|
减1
|
◇ LD Rd, X+
|
X间接取数后+
|
SEI
|
置位I
|
|
TST Rd
|
测试零或负
|
◇ LD Rd,-X
|
X间接取数先-
|
CLI
|
清零I
|
|
CLR Rd
|
寄存器清零
|
◇ LD Rd,Y
|
Y间接取数
|
SES
|
置位S
|
|
SER Rd
|
寄存器置FF
|
◇ LD Rd,Y+
|
Y间接取数后+
|
CLS
|
清零S
|
|
条件转移指令
|
◇ LD Rd,–Y
|
Y间接取数先-
|
SEV
|
置位V
|
||
RJMP k
|
相对转移
|
◇ LDD Rd,Y+q
|
Y间接取数+q
|
CLV
|
清零V
|
|
◇ IJMP
|
间接转移(Z)
|
◇ LD Rd, Z
|
Z间接取数
|
SET
|
置位T
|
|
RCALL k
|
相对调用
|
◇ LD Rd, Z+
|
Z间接取数后+
|
CLT
|
清零T
|
|
◇ ICALL
|
间接调用(Z)
|
◇ LD Rd,–Z
|
Z间接取数先-
|
SEH
|
置位H
|
|
RET
|
子程序返回
|
◇ LDD Rd, Z+q
|
Z间接取数+q
|
CLH
|
清零H
|
|
RETI
|
中断返回
|
◇ LDS Rd,K
|
从SRAM装入
|
NOP
|
空操作
|
|
CPSE Rd,Rr
|
比较相等跳行
|
◇ ST X ,Rr
|
X间接存数
|
SLEEP
|
休眠指令
|
|
CP Rd,Rr
|
比较
|
◇ ST X+ ,Rr
|
X间接存数后+
|
WDR
|
看门狗复位
|
|
CPC Rd,Rr
|
带进位比较
|
◇ ST –X ,Rr
|
X间接存数先-
|
90条指令为Attiny11/12/15/22=
□+89条基本指令是AT90S1200
|
||
CPI Rd,K
|
与立即数比较
|
◇ ST Y ,Rr
|
Y间接存数
|
|||
SBRC Rr,b
|
位清零跳行
|
◇ ST Y+ ,Rr
|
Y间接存数后+
|
|||
SBRS Rr,b
|
位置位跳行
|
◇ ST –Y ,Rr
|
Y间接存数先-
|
|||
SBIC P,b
|
I/O位清零跳行
|
◇ STD Y+q ,Rr
|
Y间接存数+q
|
|||
SBIS P,b
|
I/O位置位跳行
|
ST Z ,Rr
|
Z间接存数
|
|||
BRBS s,k
|
SREG位置位转
|
◇ ST Z+ ,Rr
|
Z间接存数后+
|
118条指令器件=
◇+ 90条指令器件
|
||
BRBC s,k
|
SREG位清零转
|
◇ ST –Z ,Rr
|
Z间接存数先-
|
|||
BREQ k
|
相等转移
|
◇ STD Z+q ,Rr
|
Z间接存数+q
|
|||
BRNE k
|
不相等转移
|
◇ STS k,,Rr
|
数据送SRAM
|
|
||
BRCS k
|
C置位转
|
□ LPM
|
从程序区取数
|
|
||
|
|
IN Rd,P
|
从I/O口取数
|
|
||
|
|
OUT P, Rdr
|
存数I/O口
|
|
||
|
|
PUSH Rr
|
压栈
|
|
||
|
|
POP Rd,
|
出栈
|
|
||
说明: SL-DIY02-3开发实验器的11个实验程序例子,仅用34条指令(以红色表示)
【更多资源】
编辑:admin 最后修改时间:2018-05-19