嵌入式技术基础与实践课件章核_第1页
嵌入式技术基础与实践课件章核_第2页
嵌入式技术基础与实践课件章核_第3页
嵌入式技术基础与实践课件章核_第4页
嵌入式技术基础与实践课件章核_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

第三章

HC08/S08/RS08CPU

主要内容HC08CPU基本构成寻址方式指令系统

HCS08CPU与HC08CPU的比较RS08CPU简介

08汇编语言基础3.1HC08CPU基本构成

M68HC08系列单片机的各种型号CPU均使用HC08CPU,有时也将HC08CPU称为CPU08,它具有如下特点:①目标代码与M68HC05系列单片机向上兼容。②具有16位堆栈指针SP。③具有16位变址寄存器HX。④8MHzCPU内部总线频率。⑤64KB程序/数据存储器空间。⑥16种寻址方式。⑦不经过累加器A的存储器之间数据直接传送。⑧快速8位×8位乘法指令、快速16位与8位相除指令,增强的BCD指令。⑨模块化结构,可扩展的内部总线定义可使寻址范围超过64KB。⑩低功耗的STOP、WAIT模式。3.1CPU12基本构成HC08中有5个寄存器:

3.2寻址方式指令是对数据的操作,通常把指令中所要操作的数据称为操作数,HC08CPU所需的操作数可能来自:寄存器、指令代码、存储单元。而确定指令中所需操作数的各种方法称为寻址方式(AddressingMode)。寻址方式越多,指令系统的功能就越强,灵活性也越大。MC68HC08系列单片机的寻址方式共有16种,比MC68HC05单片机增加了8种。

3.2寻址方式内在寻址方式(INH,Inherentaddressingmode)立即寻址方式(IMM,Immediateaddressingmode)直接寻址方式(DIR,Directaddressingmode)扩展寻址方式(EXT,Extendedaddressingmode)无偏移量变址方式(IX,Indexed,nooffsetaddressingmode)八位偏移量变址方式(IX1,Indexed,8-bitoffsetaddressingmode)

十六位偏移量变址方式(IX2,Indexed,16-bitoffsetaddressingmode)相对变址寻址方式(REL,Relativeaddressingmode)存储器:直接地址—直接地址寻址方式(DD)存储器:直接地址—变址、变址加1的寻址方式(DIX+)

存储器:立即数—直接地址寻址方式(IMD)

存储器:变址—直接地址、变址加1的寻址方式(IX+D)3.3指令系统

CPU的功能是从外部设备获得数据,通过加工、处理,再把处理结果送到CPU的外部世界。设计一台计算机,首先需要设计一套可以执行特定功能的操作命令,这种操作命令称为指令。CPU所能执行的各种指令的集合,称为该微处理器的指令系统。设计一种微处理器,一般从设计它的指令系统开始。指令系统因机器不同而不同。HC08CPU共有118个保留字,加上寻址方式形成了270条具体指令,比HC05CPU增加了78条指令。为了方便学习,将这些指令分为数据传送、算术运算、逻辑运算、位操作、移位、程序控制及其它等七类。本节分别介绍这些指令,并对每条具体指令进行统一编号。

3.3.1数据传送类指令

数据传送类指令

取数指令存数指令

堆栈操作指令

寄存器间数据传送指令

存储器间数据传送指令

3.3.2算术运算类指令

算术运算类指令

加、减指令

乘/除法指令

加1/减1指令

取反/求补指令

比较指令

清零指令

测试是否为0指令SP与HX增加指令

3.3.3逻辑运算类指令

逻辑运算类指令

与运算或运算异或运算3.3.4位操作类指令

位操作类指令back3.3.5移位类指令

单向移位指令在算术左移ASL指令中,ASLA、ASLX是对A、X进行左移,其它指令是对存储器单元的内容左移。它把8位操作数左移一位,首先将b7位移入C中,其它左移一位,0移入b0,相当于操作数乘以2。ASL指令与逻辑左移指令LSL功能完全相同,只是同一功能的不同名称。算术右移指令ASR指令比较特别,它把要操作的字节当作有符号数,而符号位(b7)保持不变,其它位右移一位,即首先将b0位移入C中,其它位(b1~b6)右移一位,相当于操作数除以2。为保证符号不变,ASR指令使符号位b7返回本身。逻辑右移指令LSR把8位操作数右移一位,首先将b0位移入C中,其它右移一位,0移入b7。单向移位指令(1)

单向移位指令(2)

循环移位指令

3.3.6程序控制类指令

一般转移指令

常用的一般转移指令包括:标志位测试转移指令无符号数比较转移指令有符号数比较转移指令位测试转移指令无条件相对转移指令

特殊转移指令

特殊转移指令跳转指令

3.3.7其它指令

中断指令二~十进制编码指令

特殊指令

3.4

HCS08CPU与HC08CPU的比较

MCS08系列单片机的内核使用HCS08CPU。与HC08CPU相比,HCS08CPU速度更快,内部总线频率由最高8MHz提高到20MHz,即执行一条基本指令的时间是50ns。从HC08CPU可以自然过渡到HCS08CPU,这就是本节比较的目的。在未来一段时间内,HC05将逐步淘汰,HC08将逐渐发展,HCS08也将逐渐发展,根据实际需要,可以在HC08与HCS08系列内选型,使用上不会有什么困难。3.4

HCS08CPU与HC08CPU的比较

HCS08CPU与指令集只是在HC08CPU指令集基础上增加了以下几条指令:对LDHX指令,增加了EXT、IX、IX1、IX2、SP1寻址方式对STHX、CPHX增加了EXT、SP1寻址方式增加了BGND(background)指令,用于调试3.5RS08CPU简介3.5.1

RS08CPU和RAM的寄存器

RS08的内核中只有一个8位的累加器A,两个14位的程序计数器PC及SPC,以及一个2位的条件码寄存器

3.5.2RS08分页方案3.5.2RS08分页方案

RS08的分页方案示意图

3.5.3RS08的寻址方式3.5.3RS08的寻址方式

表2-2MC9S12XD和MC9S12NE64CPU异同RS08的CPU有九种不同寻址方式:第一种是隐含寻址。第二种寻址方式为立即寻址。第三种是直接寻址方式。第四种是小型寻址方式。第五种是短型寻址方式。第六种是相对寻址方式。第七种是扩展寻址方式。第八种是变址寻址方式。第九种是存储器到存储器寻址方式。3.5.4RS08的子程序调用3.5.4

RS08的子程序调用

HC(S)08和RS08的子程序调用比较指令HC(S)08RS08BSR函数压当前的PC入栈将PC存储在SPC中JSR函数将函数地址载入PC将函数地址载入PCRTS从堆栈中弹出返回地址并设置PC值将SPC复制到PC中3.5.5RS08的指令集3.5.5RS08的指令集表3-2RS08的指令集指令类别指令存储器LDA,STA,MOV算术ADD,ADC,SUB,SBC,INC,INCA,DEC,DECA,CLR,CLRA,CMP逻辑AND,ORA,COMA,EOR,BSET,BCLR,LSLA,LSRA,ROLA,RORA转移BCS,BCC,BEQ,BNE,BRA,BSR,JMP,JSR,BRSET,BRCLACBEQ,CBEQA,DBNZ,DBNZA隐含NOP,STOP,WAIT,SEC,CLC,RTS,SHA,SLA3.5.5RS08的指令集表3-3CodeWarrior提供的RS08的伪指令集指令类别指令存储器LDXSTXTAXLDA,XSTA,XTXA算术ADD,XSUB,XASLAADC,XSBC,XCLRXINCXDECXCLR,XINC,XDEC,XTSTACMP,XTSTopr8aTSTXCMPXTST,X逻辑AND,XORA,XEOR,X转移BHSBRCLRusingX/D[X]BLOBRSETusingX/D[X]BRNCBEQ,XCBEQX,relDBNZ,X,rel测试TSTopr8aTSTXTST,xTSTA3.608汇编语言基础能够在单片机内直接执行的指令序列是机器语言。

用助记符号来表示机器指令便于记忆,这就形成了汇编语言。把汇编语言写成的源程序“翻译”成机器语言的工具叫编译器。为了能够正确地产生目标代码以及方便汇编语言的编写,编译器还提供了一些在汇编时使用的命令、操作符号,这些命令仅是为了更好地做好

“翻译”工作,并不产生具体的机器指令,因此这些指令被称为伪指令。3.6.108汇编源程序格式汇编语言源程序以行为单位进行设计,每一行最多可以包含以下四个部分:标号操作码操作数注释3.6.108汇编源程序格式标号必须从第一列开始书写可以组成标号的有:A~Z、a~z、0~9、“_”、“$”,但开头的第一个符号不能为数字和$08编译器区分标号中字母的大小写标号长度基本上不受限制标号后必须带冒号“:”或双冒号“::”一个标号在一个程序中只能定义一次一行语句可以只有标号标号

操作码指令码伪指令码3.6.108汇编源程序格式

操作数常数

“#”表示立即数圆点”.”符号星号”*”符号

内存块的使用字符串伪运算符

操作数用”;”用”//”3.6.208伪操作指令

存储区定义伪指令.blkbn

定义了一个存储区,预留n个字节.blkwn

定义了一个存储区,预留n个字

常数定义伪指令.byte<expr>[,<expr>]*

定义程序区中的字节常数

.word<expr>[,<expr>]*

定义程序区中的字常数

赋值伪指令<symbol>=<value>定义一个符号等于常数值

3.6.208伪操作指令

文本替代符伪指令.define<symbol><value>

定义一个文本替代符指令存储定位伪指令.org<value>定义程序或数据区的起始地文件包含伪指令.include<filename>把另一个源文件插入当前的源文件一起汇编3.6.208伪操作指令

宏定义伪指令.mac

温馨提示

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

评论

0/150

提交评论