嵌入式开发-AVR单片机课件-第3章 AVR的指令与汇编系统.docVIP

嵌入式开发-AVR单片机课件-第3章 AVR的指令与汇编系统.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 AVR的指令与汇编系统 传统的8位单片机(如最典型的8051结构的单片机)大都采用复杂指令CISC(Complex Instruction Set Computer) 系统体系。由于CISC结构存在指令系统不等长,指令数多,CPU利用效率低,执行速度慢等缺陷,已不能满足和适应设计高档电子产品和嵌入式系统应用的需要。 作为8位的AVR单片机来讲,除了其具备比较完善和功能强大的硬件结构和组成外,其更重要的是它的内核和指令系统为先进的RISC体系结构,采用了大型快速存取寄存器组(32个通用工作寄存器)、快速的单周期指令系统以及单级流水线等先进技术。因此,AVR内核核指令系统的显著特点有: 16/32位定长指令 AVR的一个指令字为16位或32位,其中大部分的指令为16位。采用定长指令,不仅使取指操作简单,提高了取指令的速度;同时也降低了在取指操作过程中的错误,提高了系统的可靠性。 流水线操作 AVR采用流水线技术,在前一条指令执行的时候,就取出现行的指令,然后以一个周期执行指令。大大提高了CPU的运行速度。 3. 大型快速存取寄存器组 传统的基于累加器的结构单片机(如8051),需要大量的程序代码来完成和实现在累加器和存储器之间的数据传送。而在AVR单片机中,采用32个通用工作寄存器构成大型快速存取寄存器组,用32个通用工作寄存器代替了累加器(相当有32个累加器),从而避免了传统结构中累加器和存储器之间数据传送造成的瓶颈现象。 由于AVR单片机采用RISC结构,使得它具有高达1MIPS/MHz的高速运行处理能力。同时也能更好地适合采用高级语言(例如C语言、BASIC语言)来编写系统程序,高效地开发出目标代码,以加快产品进入市场的时间和简化系统的设计、开发、维护和支持。 ATmega16指令综述 指令是CPU用于控制各功能部件完成某一指定动作或操作的指示和命令。指令不同,CPU和各个功能部件完成的动作也不一样,指令的功能也不同。程序员根据系统的要求,选用不同功能指令的有序组合就构成的程序。CPU执行不同的程序,就能完成不同的任务。 CPU指令的的集合或全体称为指令系统。指令系统是CPU的重要性能指标之一,也是学习以及使用单片机的重要内容。由于CPU结构的不同,每一种CPU的指令和功能也不同,因此学习AVR,就必须要了解它的指令结构、功能和特点。只有在此基础上,才能更清楚的了解AVR的硬件使用,编写出好的系统程序。 AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握效率高的指令系统。ATmegaAVR的指令系统,具有高性能的数据处理能力,能对位、半字节、字节和双字节数据进行各种操作,包括算术和逻辑运算、数据传送、布尔处理、控制转移和硬件乘法等操作。 ATmega16共有131条指令,按功能可分为五大类,它们是: 算术和逻辑运算指令()()()()()ATmega16所有的131条指令中,给出了全部指令的汇编助记符1.状态寄存器与标志位 SREG: 8位状态寄存器,其中每一位的定义为: C: 进位标志位 Z: 结果为零标志位 N: 结果为负数标志位 V: 2的补码溢出标志位 S: N⊕V,用于符号测试的标志位 H: 操作中产生半进位的标志位 T: 用于和BLD、BST指令进行位数据交换的位 I: 全局中断触发/禁止标志位 2.寄存器和操作码 Rd:R0~R31或R16~R31(取决于指令)。 Rr:R0~R31。~或~31(取决于指令)。b:常数(0~7)。 s:SREG中的指定位,常数(0~7)。 K:常数(0~255)。 k:常数,值范围取决于指令。 q:常数(0~63)。X、Y、Z:地址指针寄存器(X=R27:R26;Y=R29:R28;Z=R31:R30)。 3.堆栈 STACK: 作为返回地址和压栈寄存器的堆栈 SP: 堆栈STACK的指针 AVR指令的寻址方式指令的一个重要组成部分是操作数指令给出参与运算数据的方式称为寻址方式。AVR单片机指令操作数的寻址方式有以下种:单寄存器直接寻址、双寄存器直接寻址、直接寻址、数据直接寻址、数据间接寻址、带后增量的数据间接寻址、带预减量的数据间接寻址、带位移的数据间接寻址、常量寻址、程序直接寻址、程序间接寻址、程序相寻址。 单寄存器直接寻址由指令指一个寄存器的内容作为操作数,这种寻址方式称为单寄存器直接寻址。寄存器寻址工作寄存器中的0~R31,或后16个寄存器R16~R31(取决于指令)。INC Rd;操作:Rd←Rd+1。 INC R5;将寄存器R5内容加1回放。 图3-1单寄存器直接寻址双寄存器直接寻址双寄存器直接寻址双寄存器直接寻址方式单寄存器直接寻址方式,指令指出两个寄存器Rd和Rr结果存在Rd寄存器中。寄存器寻址工作寄存器中的0~R31

文档评论(0)

kolr + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档