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条指令(以红色表示)