AVR单片机指令快速记忆方法及速查表_第1页
AVR单片机指令快速记忆方法及速查表_第2页
AVR单片机指令快速记忆方法及速查表_第3页
AVR单片机指令快速记忆方法及速查表_第4页
AVR单片机指令快速记忆方法及速查表_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据传送指令(31)加(4):ADDADCADIWZ算术指令与ao)逻辑运算指令a2)转移调用指令(34)位操作及其他(31)AVR单片机指令系统快速记忆方法及速查表计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令來描述计算机的指令系统。汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握、效率高的指令系统。AVR单片机指令系统速査表,不同器件使用不同的指令表,见附录389条指令器件AT90S1200,最基本指令;90条指令器#(n)

2、:Attiny11/12/15/22;90条指令二口+89条基本指令118条指令器#(O):AT90S2313/2323/2343/2333,/4414/4433/4434/8515/90S8534/8535加8条指令二+90条;118条指令分类:寄存器传送:MKLDSERLD6X寄存器:LDRdXLDRciKiTLDRdfY寄存器(4):LDRdYLBRd件LDRdTIJDDRd阳Z寄存器(4):LDRdZLDRd囚rLDRdTIJDDRd酮X寄存器(3):STXRnSTRnST-XRrY寄存器(4):STYRnSTYkRn-YRnSTOY4RrZ寄存器:STZRnST%RrST-ZRnST

3、O旳R读存储器(1):UMI/创旨令:INOK栈指令:Rj6HFOP减:SUBSUBLSBC;SBCT,SBIWDEE与:ANDANDI,或:ORORI,H)R清0宣h(7)CIMNKiCmSBRCLR,TSESER转移指令:RJNRIM0NP转移)调用指令:丄ICALLQXLL调用)返回:FEEFETI(R订返回)比较指令:CRCTCCPICP比较)分支指令:CPSESBTCSI识SSBTGSBIS(S为1跳,C为0跳,R寄存器,I为I/O)基本条件分支指令:呗S醐CS为1转,C为0转)吠态字为LTHSVNZO派生指令:(18)BRIEBRIDBRIS丹gBR-SBTC斑GEBRVS肮心BR

4、vlLBm;ITOBRsRRFCS1TOQBFSH師Q位I/O操作指令:SBI,CBI(S置1,C清0)状态寄存器指令:BSETBCLR狀态字为I,THSVNZO派生指令:(16)BSETSELSETSEHSESSEVSENSEZSEC曲=K)1頤其31,足底2551ST测试零或负说明:测试寄存器是否是零或是负。完成同一寄存器之间的逻辑与操作,而寄存器内容不改变。操作:1STRdRde-RdRd0d314-4-8逻辑或指令LOR寄存器逻辑或;有1即h全0为0说明:完成寄存器Rd与寄存器R的内容逻辑或操作,结果进目的寄存器Rd中。操作:ORRdRrRdRdVRr031,g吒31ORI带立即数或功

5、能:保留屏藪)数据,宣数使某位为1)说明:完成寄存器Rd的内容与常量逻辑或操作,结果送目的寄存器Rd中。操作:ORIRdKRdeRdVK16$cK31,氏医255SBR寄存器位置位说明:对寄存器Rd中指定位宣位。完成寄存器Rd和常数表征码K之间的逻辑直接数或(ORI),结果送目的寄存器Rcl操作:SBRRdKRdRdVK16d31,g底255SER-置位寄存器的所有位说明:直接装入聊到寄存器Rd操作:SERRdRcK-FF1頤衣314-4.9运辑异或指令1.“R寄存器异或输入相同输出为a输入不同输岀为h也称同或睛零):也称互斥置1)操作:FORRdRrRdRdRr呃衣31.叱W312CLR-寄

6、存器清零说明:寄存器清零。该指令采用寄存器Rd与自己的内容相异或实现的。寄存器的所有位都被清零。操作:CLRRdRdeRdRd归衣3145转移指令4-5-1无条件转移指令LRJNP相对跳转说明:相对跳转到rc-2KIITCH-2K(字)范围内的地址。在汇编程序中,标号用于替代相对操作。操作:RJNPkPCr(PGI-1)4-k_2底底2KIM间接跳转说明:间接跳转到由寄存器区中的Z(16位)指针寄存器指向的地址。Z指针寄存器是16位宽,允许在当前程序存储器空间64K字(128K字节)内跳转。操作:IJNPPCZ(15-0)PC(15-0)-Z(15-0)M长跳转说明:在整个程序存储空间4M(字

7、)内跳转,见RJN化注意:只能到你设计的彼件电路所具有的空间,你的器件可有这条指令吗!操作:JNPkFCFkgkW的52条件转移指令一、测试条件符合转移指令LBFRS状态寄存器中位置位转移说明:条件相对转移,测试SFB3的某一位,如果该位被登位,则相对PC值转移。操作:msskIfSFEG(S)=1then存吟1)+kelseFCFFC十1(X7-64辰+63(TGF1)+k2咏状态寄存器中位清零转移说明:条件相对转移,测试湘的某一位,如果该位被清零,则相对兀值转移.操作:函丈SkIfSFEGG)=0thenFCF(PG卜1)+kelseFCPC十1gSW7,-6生底+63(FCI-1)4-k

8、3.RRBQ相等转移说明:条件相对转移,测试零标志(6,如果Z位被置位,则相对PC值转移。如果在执行CRCPI、SUB或SUBI指令后立即执行该指令,口当寄存器Rd中无符号或有符号二进制数与寄存器R中无符号或有符号H进制数相等时,转移将发生。操作:册EQkIfRd=Rg1)thenFCF(TC十1)+k焙PCT1-64底+63PG(PGI-1)+k4RFNE不相等转移说明:条件相对转移,测试零标志(9如果Z位被清零,则相对PC值转移。如果在执行CRCPI、SUB或SUBI指令后立即执行该指令,口当在寄存器Rd中的无符号或带符号二进制数不等于寄存器R中的无符号或带符号二进制数时,转移将发生。操作

9、,IWEkIfRdRr(Z=0)thenFG(PG|-1)+kelesFCPGl-1-64kW+635咤进位C标志位置位转移说明:条件相对转移,测试进位标志(。,如果C位被置位,则相对PC值转移。操作:KTSkIfG=1then件阿1)+keles焙PG卜1-64kW+63a叱进位位C标志位清除转移说明:条件相对转移,测试进位标志(Q,如果C位被清除,则相对PC值转移。操作:TOCkIfG=0then啄(FC卜1)+kelesFCPC-I-1-64kW+637.用SH(无符号)大于或等于转移说明:条件相对转移,测试进位标志(O,如果C位被清零,则相对PC值转移。操作:kIfRcRrC=O)th

10、en時(FGF1)+keles啄FC卜1-64kW+63&职IQ(无符号)小于低于转移说明:条件相对转移,测试进位标志(Q,如果C位被置位,则相对PC值转移。操作:mOkIfRd使用变址X间接将SROI中内容送入到寄存器说明:从SR射中间接送入一个字节到寄存器,SR射中的位置由寄存器区中的X(16位)指针寄存器指出。存储器访问被限制在当前64K字节的SRM页中。为访问另外则1/0范围内的寄存器叹需改变。在指令执行中,X指针寄存器值耍么不改变,耍么就加1或减1操作。使用X指针寄存器的这些特性,特别适合于访问矩阵、表和堆栈指针等。操作:LPRdXRG(X):送数,X指针寄存器值不改变LDRd好咲(

11、X)好1;先送数,后X指针寄存器值加1RcFOO;先X指针寄存器值减1,后送数2使用变址X间接将寄存器内容传送到SI使用变址X间接将寄存器内容传送到SROI说明:间接将寄存器的一个字节传送到S1WSR射的位宣由寄存器区中的X(16位)指针寄存器指出。存储器访问被限制在当前64K字节的SR酗页中。为访问另外SRM页,则1/O范围的寄存器叹将被修改。在操作之后,X指针寄存器耍么不改变,耍么是加1或减L使用X指针寄存器的这些特性,特别适合用作堆栈指针。操作:STXRrCOGR廉底31送数,X指针不改变xeR廉足31先送数,后X指针加1ST-XRrxe4100使用变址Y间接将SI讹仲的内容传送到寄存器

12、说明:带或不带偏移间接从SRN中传送一个字节到寄存器,SFM中的位登由寄存器区中的Y(16位)指针寄存器指出。存储器访问被限制在当前64K字节的SWM页中。为访问另外SROf页,则1/O范围内的寄存器昭R需改变。在指令执行后,Y指针寄存器值耍么不改变,耍么就加1或减1操作。使用Y指针寄存器的这些特性,特别适合于访问矩阵、表和堆栈指针等。操作:LDRdYRde(Y)廉其31送数,Y指针不改变LDRd许Rde(W*衣31先送数,后Y指针加1LDRdT伶J1冷许10d31先Y指针减1,后送数IWRdYFq咲(YFq)哄(Y)031,先Y指针加q后送数归g63执行后Y指针V不含q)不变4使用变址Y间接

13、将寄存器内容传送到SRMST(SID使用变址Y间接将寄存器内容传送到SIM说明:间接将带或不带偏移的寄存器的一个字节传送到的位宣由寄存器区中的W16位)指针寄存器指出。存储器访问被限制在当前64K字节的SfW!)io为访问另外SRDT几则1/也围的寄存器将被修改。在操作之后,Y指针寄存器耍么不改变,耍么是加1或减L使用Y指针寄存器的这些特性,特别适合用作堆栈指针。操作:STYRr(Y)Rr吃圧31送数,Y指针不改变STY4-,RrSTT:R(Y)RrWYF1氏柴310d31先送数,后Y指针加1先Y指针减L后送数STDYFqRrgq)GRr031,先Y指针加q后送数gg63执行后Y指针V不含q)

14、不变使用Z寄存器间接传送数据5使用变址Z间接将SRW中的内容传送到寄存器LDdW一使用变址Z间接将SRW中的内容传送到寄存器说明:带或不带偏移间接从SFM中传送一个字节到寄存器,SR射中的位宣由寄存器区中的Z(16位)指针寄存器指出。存储器访问被限制在当前64K字节的SI渝侦中。为访问另外SRM阪贝IJ1/0范圉内的寄存器昭TZ需改变。在指令执行后,Z指针寄存器值耍么不改变,耍么就加1或减1操作。使用Z指针寄存器的这些特性,特别适合丁堆栈指针,因为Z指针寄存器能用于直接子程序调用,直接跳转和査表。Z指针寄存器用作为专用堆栈指针耍比XY指针方便。用Z指针在程序存储器中査表,可参见LFM指令。操作

15、:LDRdZRde(Z)LDRdZ4-咲(2)LDRd-ZZZ-1LWRdZFqRde(ZFq)6使用变址Z间接将寄存器内容传送到g衣31送数,Z指针不改变*衣31先送数,后Z指针加1匿圧31先Z指针减1,后送数g衣31,先Z指针加q后送数归贰63执行后Z指针(Z不含q)不变SWST(SID一使用变址z间接将寄存器内容传送到sFm说明:间接将带或不带偏移的寄存器的一个字节传送到SRWSRgl的位宣山寄存器区中的Z(16位)指针寄存器指出。存储器访问被限制在当前64K字节的SRM页。为访问另外SRM兀则1/0范围的寄存器吃将被修改。在操作之后,Z指针寄存器耍么不改变,耍么是加1或减L使用Z指针寄

16、存器的这些特性,特别适合用作堆栈指针。因为Z指针寄存器能适用于间接子程序调用,间接跳转和查表,所以Z指针寄存器像一个专用堆栈指针,用起來比X和Y指针更方便。操作:STZRr(2)GRr0d31送数,Z指针不改变ST牡,RrST-Rr1廉足317rZ-l(2)GRr031先送数,后Z指针加1先Z指针减L后送数STOZt-qRr(ZFq)Rraa3从程序存储器直接取数据指令X衣31,先Z指针加q后送数廉廉63执行后Z指针0不含q)不变L装入程序存储器说明:将Z寄存器指向的一个字节传送到寄存器0(HK该指令使100%空间有效,常量初始化或常数取数特别有用。程序存储器被编为16位字,Z(16位)指针的

17、最低位(I5R)选择为0是低字节,选择为1是高字节。该指令能寻址程序存储器第一个64K字节(32字)。操作:LFMR06(2)4-641/0口数据传送LTN-I/O口数据传送到寄存器说明:将I/O空间(口,定时器,配置寄存器等)的数据传送到寄存器区中的寄存器Rd中。操作:TNRdPRdP虫圧31,吃医632存器数据送1/0口说明:将寄存器区中寄存器R的数据传送到1/0空间(口、定时器、配置寄存器等)。操作:CUTBRrWR031,g医634-6.5堆栈操作指令AVR单片机的特殊功能寄存器中有一个堆栈指针SR它指出栈顶的位宣,在指令系统中有两条用于数据传送的栈操作指令。LPUSH压寄存器到堆栈,

18、进栈指令说明:该指令存储寄存器R的内容到堆栈。操作:RJSHRrSEAORr0WdW312FOP堆栈弹出到寄存器,出栈指令说明:该指令将堆栈中的字节装入到寄存器珈中。操作:FOPRdRdeSIXKOWdW3147位指令和位测试指令47.1带进位逻辑操作指令LLSI逻辑左移逻辑左移说明:寄存器Rd中所有位左移1位。第0位被清零,第7位移到SRBJ中的C标志。该指令完成一个无符号数乘2的操作。操作:ILRd0WdW312LSR逻辑右移说明:寄存器Rd中所有位右移1位。第7位被清零,第0位移到SRBJ中的C标志。该指令完成一个无符号数除2的操作。C标志被用于结果舍入。操作:LSRRd0WdW313.

19、通过进位左循环说明:寄存器Rd的所有位左移1位,C标志被移到Rd的第0位,Rd的第7位移到C标志。操作:H)LRdOWdW31FOR通过进位右循环说明:寄存器Rd的所有位右移1位,c标志被移到Rd的第7位,Rd的第0位移到C标/忐。操作:FDRRd0WdW31asr算术右移说明:寄存器Rd中的所有位右移1位,而位7保持常量,位0被装入SRB3的C标志位。这个操作实现2的补码值除Z而不改变符号,进位标志用于结果的舍入。操作:ASRRd0WdW316.甌P-半字节交换说明:寄存器中的高半字节和低半字节交换。操作:SWPRd0WdW31R(44)CRd(30)R(30)GRd(7-4)47.2位变量

20、传送指令1.旳寄存器中的位存储到SRB3小的T标志说明:把寄存器中的位b存储到SFB3(状态寄存器)中的T标志。操作:BTRdbRd(b)03L0K72HJ)-SRB3中的T标志装入寄存器中的某一位说明:拷贝SFB3(状态寄存器)的T标志到寄存器Rd中的位U操作:BLDRddRd(b)GTg圧3hX坯747.3位变量修改指令1.BSE置状态寄存器的位说明:宣状态寄存器(STO的某一标志或某一位。操作:BSETsSFB3(S10WsW72B2LR淸状态寄存器的位说明:清零SHB3状态寄存器中的一个标志位。操作:KLRsSREG(S)00WsW7asbi置i/o寄存器的位说明:对I/O寄存器指定的

21、位置位,该指令在低32个I/O寄存器内操作,I/O寄存器地址为Z3。操作:SBIBb1/0(Pb)1X医31,0b74CBI清1/凿存器的位说明:清零1/0寄存器中的指定位,该指令用在寄存器最低的32个1/0寄存器上,1/0寄存器地址为(H3L6.7.1Q1L121314操作:SBC-直进位位标志说明:宣位SFB3(状态寄存器)操作:SEC0-183-清零进位标;忐说明:清零SFB3(状态寄存器)操作:CLC0-0SEN置位负数标志说明:宣位SFB3(状态寄存器)操作:SENCLN清零负数标志说明:清零SFB3(状态寄存器)操作:CLN*0SEN-置位零标志说明:宣位SFB3(状态寄存器)操作:SEZ71CLZ清零零标志说明:清零SFB3(状态寄存器)操作:CLZ*0SEI置位全局中断标志说明:宣位SFB3(状态寄存器)操作:SEIG1CL1清零全局中断标志说明:清除SFB3(状态寄存器)操作:CLIG

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论