AVR单片机汇编指令系统

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

扫描二维码关注公众号,回复: 11932563 查看本文章

加法

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

Rrb位送T

ORI Rd,K

或立即数

BRVC k

V清零转移

BLD Rd

TRrb

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,

出栈

 

猜你喜欢

转载自blog.csdn.net/hu5566798/article/details/103187033