第3章 指令系统与编程技术(第1次课).pptVIP

  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章 指令系统与编程技术(第1次课)

单片机系统设计及工程应用 西安电子科技大学计算机学院 雷思孝 第3章 指令系统与编程技术 3.1 51系列单片机指令系统概述 指令就是我们给计算机下达的计算机能够读懂的指示和命令。 计算机所有指令的集合称为指令系统,它是表征计算机性能的重要标志,指令系统越丰富,说明CPU的功能越强。 汇编语言指令格式 指令的描述形式有三种: 机器语言 汇编语言 高级语言 [标号:] 操作码 [目的操作数] [,源操作数] [;注释] 标号必须以字母开头,其后跟1~8个字母或数字,并以“:”结尾 指令中用到的符号 (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和所有的条件相对转移指令中。 指令中用到的符号 (5)addrl6:16位目的地址。目的地址可在全部程序存储器的64KB空间范围内,主要用于无条件长转移指令LJMP和子程序长调用指令LCALL中。 (6)addrll:11位目的地址。目的地址应与下条指令处于相同的2KB程序存储器地址空间范围内,主要用于绝对转移指令AJMP和子程序绝对调用指令ACALL指令中。 (7)direct:表示直接寻址的地址,即8位内部数据存储器RAM的单元地址(0~127/255),或特殊功能寄存器SFR的地址。 指令中用到的符号 (8)bit:内部数据存储器RAM和特殊功能寄存器SFR中的可直接寻址的位地址。 (9)@:间接寻扯寄存器或基地址寄存器的前缀,如@Ri,@DPTR,表示寄存器间接寻址。 指令周期是指CPU执行一条指令所花费的时间。由于执行不同的指令所需要的时间长短不同,因此通常是以指令消耗的机器周期数为依据来确定指令周期的。 51系统中,一个指令周期通常含1~4个机器周期,大多数指令是单字节、单机器周期指令,还有一些指令是单字节、双周期指令和双字节、双周期指令,而乘法指令MUL和除法指令DIV都是单字节四周期指令。 3.2 51系列单片机寻址方式 指令获得操作数、操作数所在的地址或转移地址的方式称为寻址方式。 为了描述方便,对于有目的操作数和源操作数的双操作数指令,在无特别声明的情况下,某条指令的寻址方式一般是指源操作数的寻址方式。 51系列单片机有7种寻址方式。分别为:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址。 立即寻址 立即寻址是指CPU能够立即得到操作数的一种寻址方式,它只适应对源操作进行寻址。 在立即寻址方式中,源操作数直接出现在指令中,跟在操作码的后面,作为指令的一部分与操作码一起存放在程序存储器内,CPU可以立即得到源操作数并执行,不需要另去寄存器或存储器寻找和读取操作数,故称为立即寻址。 立即寻址 立即寻址中,该操作数称为立即数,并在其前冠以“#”号作前缀,表示并非地址。 若立即数以十六进制数据表示时,应以H为后缀,当数据以A~F开头时必须加前导0。 十进制数据可不带后缀。立即数长度可以是8位或16位。 立即寻址示例 MOV R0,#16H ;(R0)←16H,其机器码为78H 16H。 MOV R1, #16 ;(R1)←10H,其机器码为79H 10H。 MOV A , #0C0H ;(A)←C0H, 其机器码为74H C0H。 MOV DPTR,#2510H;(DPTR)←2510H,其机器码为90H 25H 10H 寄存器寻址 将操作数存放于某寄存器中,CPU执行指令时从寄存器中取出操作数,以完成指令规定的操作,称为寄存器寻址。 例如:MOV A,R0 ;(A)←(R0) ADD A,R1 ; (A)←(A)+(R1) 直接寻址 指令中直接给出操作数所在的存储单元的地址,供指令读取数据或存储数据,把这这种寻址方式称为直接寻址。 例如:MOV A,30H ;(A)←(30H) 寄存器间接寻址 在指令中指定某一个寄存器的内容作为操作数的地址,而该地址指定单元中的内容便是操作数。这种寻址方法称为寄存器间接寻址方式,简称寄存器间址,也称为间接寻址方式。通常将用来存放操作数地址的寄存器称为指针。 寄存

文档评论(0)

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

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

1亿VIP精品文档

相关文档