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












