AVR單片機(jī)指令系統(tǒng)
計(jì)算機(jī)的指令系統(tǒng)是一套控制計(jì)算機(jī)操作的代碼,稱之為機(jī)器語(yǔ)言。計(jì)算機(jī)只能識(shí)別和執(zhí)行機(jī)器語(yǔ)言的指令。為了便于人們理解、記憶和使用,通常用匯編語(yǔ)言指令來(lái)描述計(jì)算機(jī)的指令系統(tǒng)。匯編語(yǔ)言指令可通過(guò)匯編器翻譯成計(jì)算機(jī)能識(shí)別的機(jī)器語(yǔ)言。
AVR單片機(jī)指令系統(tǒng)是RISC結(jié)構(gòu)的精簡(jiǎn)指令集,是一種簡(jiǎn)明易掌握﹑效率高的指令系統(tǒng)。
SL-DIY02-3開(kāi)發(fā)實(shí)驗(yàn)器使用AT90S8535單片機(jī),有118條指令, 而我們所做的11個(gè)實(shí)驗(yàn)程序僅用了34條指令, 我們重點(diǎn)講這34條指令, 其余指令就可自學(xué)了。
AVR器件(指令速查表) 118條指令器件
AT90S2313/2323/2343/2333 ,AT90S4414/4433/4434/8515,AT90S8534/8535
算術(shù)和邏輯指令 | BRCC k | C清零轉(zhuǎn) | 位指令和位測(cè)試指令 | |||
ADD Rd,Rr | 加法 | BRSH k | ≥轉(zhuǎn) | SBI P,b | 置位I/O位 | |
ADC Rd,Rr | 帶進(jìn)位加 | BRLO k | 小于轉(zhuǎn)(無(wú)符號(hào)) | CBI P,b | 清零I/O位 | |
◇ ADIW Rdl,K | 加立即數(shù) | BRMI k | 負(fù)數(shù)轉(zhuǎn)移 | LSL Rd | 左移 | |
SUB Rd,Rr | 減法 | BRPL k | 正數(shù)轉(zhuǎn)移 | LSR Rd | 右移 | |
SUBI Rd,Rr | 減立即數(shù) | BRGE k | ≥轉(zhuǎn)(帶符號(hào)) | ROL Rd | 帶進(jìn)位左循環(huán) | |
SBC Rd,Rr | 帶進(jìn)位減 | BRLT k | 小于轉(zhuǎn)(帶符號(hào)) | ROR Rd | 帶進(jìn)位右循環(huán) | |
SBCI Rd,K | 帶C減立即數(shù) | BRHS k | H置位轉(zhuǎn)移 | ASR Rd | 算術(shù)右移 | |
◇ SBIW Rdl,K | 減立即數(shù) | BRHC k | H清零轉(zhuǎn)移 | SWAP Rd | 半字節(jié)交換 | |
AND Rd,Rr | 與 | BRTS k | T置位轉(zhuǎn)移 | BSET s | 置位SREG | |
ANDI Rd,K | 與立即數(shù) | BRTC k | T清零轉(zhuǎn)移 | BCLR s | 清零SREG | |
OR Rd,Rr | 或 | BRVS k | V置位轉(zhuǎn)移 | BST Rr,b | Rr的b位送T | |
ORI Rd,K | 或立即數(shù) | BRVC k | V清零轉(zhuǎn)移 | BLD Rd | T送Rr的b位 | |
EOR Rd,Rr | 異或 | BRIE k | 中斷位置位轉(zhuǎn)移 | SEC | 置位C | |
COM Rd | 取反 | BRID k | 中斷位清零轉(zhuǎn)移 | CLC | 清零C | |
NEG Rd | 取補(bǔ) | 數(shù)據(jù)傳送指令 | SEN | 置位N | ||
SBR Rd,K | 寄存器位置位 | MOV Rd,Rr | 寄存器傳送 | CLN | 清零N | |
CBR Rd,K | 寄存器位清零 | ◇ LDI Rd,K | 裝入立即數(shù) | SEZ | 置位Z | |
INC Rd | 加1 | ◇ LD Rd, X | X間接取數(shù) | CLZ | 清零Z | |
DEC Rd | 減1 | ◇ LD Rd, X+ | X間接取數(shù)后+ | SEI | 置位I | |
TST Rd | 測(cè)試零或負(fù) | ◇ LD Rd,-X | X間接取數(shù)先- | CLI | 清零I | |
CLR Rd | 寄存器清零 | ◇ LD Rd,Y | Y間接取數(shù) | SES | 置位S | |
SER Rd | 寄存器置FF | ◇ LD Rd,Y+ | Y間接取數(shù)后+ | CLS | 清零S | |
條件轉(zhuǎn)移指令 | ◇ LD Rd,–Y | Y間接取數(shù)先- | SEV | 置位V | ||
RJMP k | 相對(duì)轉(zhuǎn)移 | ◇ LDD Rd,Y+q | Y間接取數(shù)+q | CLV | 清零V | |
◇ IJMP | 間接轉(zhuǎn)移(Z) | ◇ LD Rd, Z | Z間接取數(shù) | SET | 置位T | |
RCALL k | 相對(duì)調(diào)用 | ◇ LD Rd, Z+ | Z間接取數(shù)后+ | CLT | 清零T | |
◇ ICALL | 間接調(diào)用(Z) | ◇ LD Rd,–Z | Z間接取數(shù)先- | SEH | 置位H | |
RET | 子程序返回 | ◇ LDD Rd, Z+q | Z間接取數(shù)+q | CLH | 清零H | |
RETI | 中斷返回 | ◇ LDS Rd,K | 從SRAM裝入 | NOP | 空操作 | |
CPSE Rd,Rr | 比較相等跳行 | ◇ ST X ,Rr | X間接存數(shù) | SLEEP | 休眠指令 | |
CP Rd,Rr | 比較 | ◇ ST X+ ,Rr | X間接存數(shù)后+ | WDR | 看門狗復(fù)位 | |
CPC Rd,Rr | 帶進(jìn)位比較 | ◇ ST –X ,Rr | X間接存數(shù)先- | 90條指令為Attiny11/12/15/22= □+89條基本指令是AT90S1200 | ||
CPI Rd,K | 與立即數(shù)比較 | ◇ ST Y ,Rr | Y間接存數(shù) | |||
SBRC Rr,b | 位清零跳行 | ◇ ST Y+ ,Rr | Y間接存數(shù)后+ | |||
SBRS Rr,b | 位置位跳行 | ◇ ST –Y ,Rr | Y間接存數(shù)先- | |||
SBIC P,b | I/O位清零跳行 | ◇ STD Y+q ,Rr | Y間接存數(shù)+q | |||
SBIS P,b | I/O位置位跳行 | ST Z ,Rr | Z間接存數(shù) | |||
BRBS s,k | SREG位置位轉(zhuǎn) | ◇ ST Z+ ,Rr | Z間接存數(shù)后+ | 118條指令器件= ◇+ 90條指令器件 | ||
BRBC s,k | SREG位清零轉(zhuǎn) | ◇ ST –Z ,Rr | Z間接存數(shù)先- | |||
BREQ k | 相等轉(zhuǎn)移 | ◇ STD Z+q ,Rr | Z間接存數(shù)+q | |||
BRNE k | 不相等轉(zhuǎn)移 | ◇ STS k,,Rr | 數(shù)據(jù)送SRAM | |||
BRCS k | C置位轉(zhuǎn) | □ LPM | 從程序區(qū)取數(shù) | |||
IN Rd,P | 從I/O口取數(shù) | |||||
OUT P, Rdr | 存數(shù)I/O口 | |||||
PUSH Rr | 壓棧 | |||||
POP Rd, | 出棧 | |||||
說(shuō)明: SL-DIY02-3開(kāi)發(fā)實(shí)驗(yàn)器的11個(gè)實(shí)驗(yàn)程序例子,僅用34條指令(以紅色表示)
【更多資源】
編輯:admin 最后修改時(shí)間:2018-05-19