第3章 HC08 CPU_HCS08 CPU.docVIP

  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章 HC08 CPU_HCS08 CPU

第3章 HC08/S08/RS08 CPU HC08 CPU有5个寄存器、16种寻址方式、140条基本指令(加上寻址方式可形成270条具体指令),这是学习08汇编语言的基础。本章从程序员角度介绍HC08 CPU的编程结构、寻址方式、指令系统。为方便学习,对HC08 CPU的270条具体指令进行了统一编号。由于HCS08 CPU指令集是HC08 CPU扩充,因此给出了其扩充指令。RS08 CPU指令集是HCS08 CPU指令集的精简版,本章也给出简要介绍。本章还给出了08汇编语言的格式、伪指令。 08汇编语言是学习08系列MCU的重要基础之一,学好汇编语言有助于进行底层编程、有助于理解编程结构。轻视汇编语言学习与编程,是不正确的学习方法。实际上,学习08汇编语言并不困难,关键是掌握其要领。这些基本要领是:掌握CPU内部5个寄存器的使用方法、理解16种寻址方式、记住常用指令、进行编程实践。 本章的重点有四:(1)HC08 CPU的寄存器A、X、HX、CCR、PC、SP。主要理解HX作为变址寄存器的用法,理解SP采用递减结构;(2)HC08 CPU的寻址方式。理解CPU的寻址方式对理解和记忆汇编指令很有帮助。(3)HC08 CPU的指令系统。虽然短时间内难以记住指令系统,但是当作英语单词进行一定的记忆,对随后看懂程序很有好处。建议重点记忆指令系统简表。(4)08汇编语言基础。必须了解汇编语言的结构和掌握基本伪指令,才能进行汇编入门。对于汇编程序的基本入门,是学习嵌入式系统的基础之一。一点汇编程序都不理解,难于真正理解嵌入式系统的底层开发。 对于HCS08 CPU和RS08 CPU,要求基本了解其与HC08 CPU的区别。HC08 CPU和HCS08 CPU差别较小,指令、寻址方式基本相同,HCS08 CPU只是比HC08 CPU多了几条指令。RS08 CPU是HCS08 CPU的简化版本,其CPU变化较大,寻址方式、指令系列都有所精简及优化。 3.1 HC08 CPU基本构成 M68HC08系列单片机的各种型号的CPU均使用HC08 CPU,有时也将HC08 CPU称为CPU08,它具有如下主要特点: ①目标代码与M68HC05系列单片机向上兼容。 ②具有16位堆栈指针SP。 ③具有16位变址寄存器HX。 ④8MHz CPU内部总线频率。 ⑤64KB程序/数据存储器空间。 ⑥16种寻址方式。 ⑦不经过累加器A的存储器之间数据直接传送。 ⑧快速8位×8位乘法指令、快速16位与8位相除指令,增强的BCD指令。 ⑨模块化结构,可扩展的内部总线定义可使寻址范围超过64KB。 ⑩低功耗的STOP、WAIT模式。 下面主要对CPU中的寄存器功能进行介绍。从编程角度来说,它代表CPU的结构,即寄存器是程序员能够直接“看到”的CPU结构。至于算术逻辑部件(ALU)的功能与一般计算机含义相同,在此略。 HC08 CPU中有5个寄存器:累加器A、变址寄存器HX、堆栈指针SP、程序计数器PC和条件码寄存器CCR。这5个寄存器与端口部件的寄存器不同,它们可以被指令直接执行或被控制器直接控制,不需要像端口部件寄存器那样通过存储器映射方式进行读/写。5个寄存器的结构示意图见图3-1。 图3-1 HC08 CPU的寄存器 (1) 累加器A(Accumulator) 累加器A是8位通用寄存器,用来存放操作数和运算结果。数据读取时,累加器A用于存放从存储器读出的数据;数据写入时,累加器A用于存放准备写入存储器的数据。在执行算术、逻辑操作时,累加器首先存放一个操作数,执行完毕时累加器存放操作结果。累加器A是指令系统中最灵活的一个寄存器,各种寻址方式均可对之寻址。复位时,累加器A的内容不受影响。 (2) 变址寄存器HX(Index Register) HC08 CPU的变址寄存器HX是16位寄存器,H是高8位,X是低8位,可单独使用。变址寄存器HX主要用于变址寻址方式中确定操作数的地址,也可以用来存放临时数据,作为一般寄存器使用。复位时,高8位被清零。 (3) 堆栈指针SP(Stack Pointer) SP是指向下一个栈地址的16位寄存器,堆栈指针SP采用递减的结构,即进栈时SP减1,出栈时SP加1。复位时,SP的初值为$00FF(前置符号$表示十六进制数,下同)。栈指针复位指令(RSP)可将SP的低8位置为$FF,而不影响高8位。 在堆栈指针作为8位或16位的偏移量寻址方式中,SP充当变址寄存器功能,CPU利用SP的内容确定操作数的有效地址。 (4) 程序计数器PC(Program Counter) 程序计数器PC也是16位的,可寻址范围达64KB。PC存放下一条指令的地址,在执行转移指令时存放转移地址,在执行中断指令时存放中断子程序入

文档评论(0)

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

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

1亿VIP精品文档

相关文档