AVR單片機(jī)指令系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
計(jì)算機(jī)的指令系統(tǒng)是一套控制計(jì)算機(jī)操作的代碼,稱之為機(jī)器語言。計(jì)算機(jī)只能識(shí)別和執(zhí)行機(jī)器語言的指令。為了便于人們理解、記憶和使用,通常用匯編語言指令來描述計(jì)算機(jī)的指令系統(tǒng)。匯編語言指令可通過匯編器翻譯成計(jì)算機(jī)能識(shí)別的機(jī)器語言。 AVR單片機(jī)指令系統(tǒng)是RISC結(jié)構(gòu)的精簡指令集,是一種簡明易掌握﹑效率高的指令系統(tǒng)。 SL-DIY02-3開發(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)(無符號(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, |
出棧 |
|
||
說明: SL-DIY02-3開發(fā)實(shí)驗(yàn)器的11個(gè)實(shí)驗(yàn)程序例子,僅用34條指令(以紅色表示)





