《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第1次课)_第1页
《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第1次课)_第2页
《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第1次课)_第3页
《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第1次课)_第4页
《单片机原理及工程应用》课件-第3章 指令系统与编程技术(第1次课)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1常用51单片机最小系统XTAL1XTAL2RSTT30PF10μF5KAT89C52GNDVCCVCC30PFVCC100RESET2指令的描述形式有三种:机器语言汇编语言高级语言3第3章

指令系统与编程技术43.151系列单片机指令系统概述指令就是我们给计算机下达的计算机能够读懂的指示和命令。计算机所有指令的集合称为指令系统,它是表征计算机性能的重要标志,指令系统越丰富,说明CPU的功能越强。

551系列单片机指令特点及分类6[标号:]操作码[目的操作数][,源操作数][;注释]

标号必须以字母开头,其后跟1~8个字母或数字,并以“:”结尾汇编语言指令格式7指令中用到的符号(1)Ri和Rn:R表示当前工作寄存器区中的工作寄存器,i表示0或1,即R0或R1。n表示0~7,即R0~R7,当前工作寄存器的选定是由PSW的RSl和RS0位决定的。(2)#data:#表示立即数符号,data为8位立即数。#data是指包含在指令中的8位立即数。(3)#datal6:包含在指令中的16位立即数。(4)rel:相对地址,以8位补码形式表示的地址偏移量,范围为-128~+127,主要用于无条件相对短转移指令SJMP和所有的条件相对转移指令中。8(5)addrl6:16位目的地址。目的地址可在全部程序存储器的64KB空间范围内,主要用于无条件长转移指令LJMP和子程序长调用指令LCALL中。

(6)addrll:11位目的地址。目的地址应与下条指令处于相同的2KB程序存储器地址空间范围内,主要用于绝对转移指令AJMP和子程序绝对调用指令ACALL指令中。

(7)direct:表示直接寻址的地址,即8位内部数据存储器RAM的单元地址(0~127/255),或特殊功能寄存器SFR的地址。指令中用到的符号9(8)bit:内部数据存储器RAM和特殊功能寄存器SFR中的可直接寻址的位地址。

(9)@:间接寻扯寄存器或基地址寄存器的前缀,如@Ri,@DPTR,表示寄存器间接寻址。

指令中用到的符号10指令长度和指令周期指令长度是指指令的机器代码所占存储单元的字节数。11

指令周期是指CPU执行一条指令所花费的时间。由于执行不同的指令所需要的时间长短不同,因此通常是以指令消耗的机器周期数为依据来确定指令周期的。

51系统中,一个指令周期通常含1~4个机器周期,大多数指令是单字节、单机器周期指令,还有一些指令是单字节、双周期指令和双字节、双周期指令,而乘法指令MUL和除法指令DIV都是单字节四周期指令。

指令长度和指令周期123.251系列单片机寻址方式

指令获得操作数、操作数所在的地址或转移地址的方式称为寻址方式。为了描述方便,对于有目的操作数和源操作数的双操作数指令,在无特别声明的情况下,某条指令的寻址方式一般是指源操作数的寻址方式。

13

51系列单片机有7种寻址方式。分别为:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。14立即寻址

立即寻址是指CPU能够立即得到操作数的一种寻址方式,它只适应对源操作进行寻址。

在立即寻址方式中,源操作数直接出现在指令中,跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器内,CPU可以立即得到源操作数并执行,不需要另去寄存器或存储器寻找和读取操作数,故称为立即寻址。15

立即寻址中,该操作数称为立即数,并在其前冠以“#”号作前缀,表示并非地址。

若立即数以十六进制数据表示时,应以H为后缀,当数据以A~F开头时必须加前导0。

十进制数据可不带后缀。立即数长度可以是8位或16位。立即寻址16MOVR0,#16H;(R0)←16H,其机器码为78H16H。MOVR1,#16;(R1)←10H,其机器码为79H10H。MOVA,#0C0H;(A)←C0H,其机器码为74HC0H。MOVDPTR,#2510H;(DPTR)←2510H,其机器码为90H25H10H立即寻址示例第1个符号为字母时,应在字母前加017寄存器寻址将操作数存放于某寄存器中,CPU执行指令时从寄存器中取出操作数,以完成指令规定的操作,称为寄存器寻址。例如:MOVA,R0;(A)←(R0)

ADDA,R1;(A)←(A)+(R1)18直接寻址

指令中直接给出操作数所在的存储单元的地址,供指令读取数据或存储数据,把这这种寻址方式称为直接寻址。

例如:MOVA,30H;(A)←(30H)19寄存器间接寻址

在指令中指定某一个寄存器的内容作为操作数的地址,而该地址指定单元中的内容便是操作数。这种寻址方法称为寄存器间接寻址方式,简称寄存器间址,也称为间接寻址方式。通常将用来存放操作数地址的寄存器称为指针。20

MCS-51中,用于间接寻址的寄存器有R0、R1、数据指针寄存器DPTR和堆栈指针SP。用R0、R1或DPTR作为地址指针寄存器时,应在寄存器符号前加前缀“@”,用于表示间接寻址。例如:MOVA,@R0;(A)←((R0))寄存器间接寻址21变址寻址

变址寻址是将基址寄存器与变址寄存器的内容相加,其结果作为操作数地址的一种寻址方式。它以数据指针DPTR或程序计数器PC作为基址寄存器,累加器A作为变址寄存器,两者的内容相加形成16位的程序存储器地址,该地址就是操作数所在地址。

例如:MOVCA,@A+DPTR;(A)←((A)+(DPTR))

22相对寻址

相对寻址是以当前程序计数器PC的值加上指令规定的偏移量rel构成实际操作数地址的寻址方法。相对寻址用来访问程序存储器,常用于相对转移指令中。例如:JZrel

通常是用标号23偏移量rel是有符号的单字节数,以补码表示,其相对值的范围是-128~+127,负数表示从当前地址向前转移,正数表示从当前地址向后转移。所以,相对转移指令满足转移条件后,转移的地址(目的地址)应为:目的地址=当前PC值+rel=源地址+转移指令字节数+rel相对寻址24位寻址

位寻址是指令中可以直接给出位地址,CPU按位进行访问的一种寻址

温馨提示

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

评论

0/150

提交评论