第4讲 单片机指令系统1_第1页
第4讲 单片机指令系统1_第2页
第4讲 单片机指令系统1_第3页
第4讲 单片机指令系统1_第4页
第4讲 单片机指令系统1_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

第4讲(2012-4-10)11-12第2学期第7周汽车单片机1.总体结构:(各部分的功能、协调关系)2.引脚功能:(引脚的数目、信号特点)3.CPU:

(如何找到并运行程序)4.存储器的结构:(位、地址、空间大小)5.复位操作和复位电路:(复位后单片机的状态)6.时钟时序:

(时钟电路、如何理解程序的运行时间)复习:第2章MCS-51单片机硬件结构1.指令系统简介;2.寻址方式;3.指令系统;4.汇编语言程序设计;5.程序设计实例;第3章MCS-51指令系统及汇编语言MCS-51的基本指令共111条,按指令所占的字节来分:

(1)单字节指令49条;

(2)双字节指令45条;

(3)三字节指令17条。按指令的执行时间来分:

(1)1个机器周期(12个时钟振荡周期)指令64条

(2)2个机器周期(24个时钟振荡周期)指令45条(3)只有乘、除两条指令的执行时间为4个机器周期(48个时钟振荡周期)。3.1指令系统概述

注:12MHz晶振:机器周期为1s。1.指令格式

指令格式——指令的表达方式称为指令格式

[标号:]操作码[目的操作数][,源操作数][;注释]标号:指令的符号地址。标号是用户设定的符号,表示该语句所在的地址。标号必须由以字母开头的l~8个ASCll字符组成,这些字符不能使用在该汇编语言中已经定义过了的符号。操作码:操作码是由英文缩写组成的字符串,它规定了指令的操作功能,是指令格式中唯一不能空缺的部分。1.指令格式

[标号:]操作码[目的操作数][,源操作数][;注释]操作数:操作数用于给指令的操作提供数据或地址。操作数可以是空白也可能只有一项或二项,还可以有三项。各操作数之间必须用逗号分隔,操作数与操作码之间须用空格分隔。在两个操作数的指令中,把左边的操作数称为目的操作数,而右边操作数称之为源操作数。注释:注释是对语句或程序段功能的说明。注释要用分号“;”开头,注释的长度不限,但每行开头仍须使用分号“;”,注释也可空缺。2.指令分类(见附录A,P236)

有单字节指令、双字节指令、三字节不同长度的指令,格式不同:(1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。(2)双字节指令:一个字节为操作码,另一个字节是操作数。

(3)三字节指令:操作码占一个字节,操作数占二个字节。其中操作数既可能是数据,也可能是地址。

2.指令分类

按功能分有五大类指令,共111条:(1)数据传送类(28条)

:RAM、ROM、堆栈,传送、交换数据。(2)算术运算类(24条)

:字节。其中操作数既可能是数据,也可能是地址。加、减、乘、除,自加(减)1;(3)逻辑运算类(25条)

:与、或、异或、移位。(4)控制转移类(17条)

:(无)条件转移、空操作。(5)布尔变量操作类(17条)

:位数据传送、与、或、转移。

指令中常用符号

Rn(n=0~7)—当前工作寄存器组R0~R7;

Ri(i=0,l)—当前工作寄存器组的R0或R1;

ACC—代表累加器A的直接地址EOH;

@—间接寻方式中间址寄存器标志符号;

#data—8位立即数;(#XXH)

#datal6—16位立即数;(#XXXXH)

direct—8位片内RAM单元(包括SFR的地址或符号)的直接地址;

addr11—11位目的地址;

addr16—16位目的地址,只限于在LCALL和LJMP指令中使用;Rel—8位带符号补码数;Bit—片内RAM或SFR中的直接寻址位;C—代表PSW中的进位标志位,称为累加位;/—加在位地址前面,表示对该位的状态取反;(X)—表示寄存器X或单元X中的数据;((X))—表示将寄存器X或X存储单元的数作为地址的这个地址单元中的数据。

$—当前指令的首地址;→箭头右边的内容被箭头左边的内容所取代。

寻址方式就是在指令中说明(寻找、获得)操作数所在地址的方法。共7种寻址方式。1.立即寻址方式所谓立即寻址就是操作数在指令中直接给出。立即寻址方式的操作数称立即数,立即数只能是源操作数,不能作为目的操作数。立即数有8位立即数和16位立即数。使用时在立即数前加“#”标志。

MOVA,#26H

A

26H

MOVDPTR,#2000H

DPTR

2000H

3.2指令系统的寻址方式2.直接寻址方式

操作数直接以单元地址的形式给出:

MOVA,20H

;A

(20H)

寻址范围:

(1)内部RAM的低128个单元;

(2)特殊功能寄存器。除了以单元地址的形式外,还可用寄存器符号的形式给出。例如:

MOVA,80H与MOVA,P0是等价的。3.寄存器寻址方式

操作数在寄存器中

MOVA,Rn

;(Rn)→A,n=0~7

表示把寄存器Rn的内容传送给累加器A寻址范围包括:(1)4组通用工作寄存区共32个工作寄存器。(2)部分特殊功能寄存器,例如A、B以及数据指针寄存器DPTR等。4.寄存器间接寻址方式

寄存器中存放的是操作数的地址在寄存器的名称前面加前缀标志“@”

访问内部RAM或外部数据存储器的低256个字节时,只能采用R0或R1作为间址寄存器。例如:

MOVA,@Ri

;i=0或1

其中Ri中的内容为40H,把内部RAM40H单元内容送A。寻址范围:(1)访问内部RAM低128个单元,其通用形式为@Ri(2)对片外数据存储器的64K字节的间接寻址,例如: MOVXA,@DPTR(3)片外数据存储器的低256字节例如:MOVXA,@Ri(4)堆栈区堆栈操作指令PUSH(压栈)和POP(出栈)使用堆栈指针(SP)作间址寄存器4.寄存器间接寻址方式

MOV A,@Ri

MOVXA,@DPTR例如:(R1)=80H、(80H)=33H,则执行指令MOVA,@Ri后,累加器A的内容为33H而不是80H。P48实例5基址加变址寻址方式

基址加变址寻址就是以DPTR或PC为基址寄存器,以A为变址寄存器,以两者内容相加形成16位地址作为操作数地址。例如指令:MOVCA,@A+DPTR5基址加变址寻址方式例如:MOVCA,@A+DPTR设(A)=10H,(DPTR)=1000H,程序存储器的(1010H)=45H,则上面程序语句的功能是将A的内容与DPTR的内容相加形成操作数地址(1010H),把该地址中的数据传送到累加器A。即(A)←((A)+(DPTR))。结果:

(A)=45H。

MOVCA,@A+DPTR的执行示意图说明:(1)本寻址方式是专门针对程序存储器的寻址方式,寻址范围可达到64KB。(2)本寻址方式的指令只有3条:

MOVCA,@A+DPTR MOVCA,@A+PC JMP@A+DPTR参考P48,例子6.相对寻址方式

在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把PC的当前值加上偏移量就构成了程序转移的目的地址:目的地址=转移指令所在的地址+转移指令的字节数

+rel

偏移量rel是一带符号的8位二进制数补码数。范围是:–128~+127

向地址增加方向最大可转移(127+转移指令字节)个单元地址,向地址减少方向最大可转移(128-转移指令字节)个单元地址。参考P49,例子7.位寻址方式

MCS-51有位处理功能,可以对数据位进行操作,例如: MOVC,40H

是把位40H的值送到进位位C。寻址范围包括:(1)内部RAM中的位寻址区。位有两种表示方法,例如,40H;另一种是单元地址加上位,例如,(28H).0,指的是28H单元中的最低位。它们是等价的。(2)特殊功能寄存器中的可寻址位

可寻址位在指令中有如下4种的表示方法:a.直接使用位地址。例如PSW.5的位地址为0D5H。b.位名称的表示方法。例如:PSW.5是F0标志位,可使用F0表示该位。c.单元地址加位数的表示方法。例如:(0D0H).5。d.特殊功能寄存器符号加位数的表示方法。例如:PSW.5。①MOV2FH,#40H②MOVA,@R0③MOVDPTR,#2020H④MOV45H,P0⑤MOVA,R1⑥MOVCA,@A+PC⑦JCLOOP①立即寻址,②寄存器间接寻址,③16位立即寻址,④直接寻址。⑤寄存器寻址。⑥基址加变址寻址,⑦相对寻址。练习-说出下列指令寻址方式

温馨提示

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

评论

0/150

提交评论