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