单片机原理及接口技术知识(第2版)第3章指令系统.ppt

单片机原理及接口技术知识(第2版)第3章指令系统.ppt

  1. 1、本文档共149页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理及接口技术知识(第2版)第3章指令系统.ppt

第3章 AT89S51单片机的 指令系统 ;AT89S51单片机为8051内核,凡是8051内核的单片机均使用8051指令系统。本章首先介绍8051单片机汇编语言的指令系统寻址方式,并对全部的111条基本指令按功能分类详细讲解,最后介绍8051汇编语言的伪指令,以及常见的汇编语言源程序的编写。 指令是CPU按照人们的意图来完成某种操作的命令,8051指令是用助记符、符号地址、标号等来表示的。熟知并掌握8051指令系统的各类指令是AT89S51单片机应用程序设计的基础。 ;3.1 指令系统概述 简明、易掌握、效率较高的指令系统,复杂指令集。 按所占字节分,分三种: (1)单字节指令49条; (2)双字节指令45条; (3)三字节指令17条。 按执行时间来分,分三种: (1)1个机器周期(12个时钟振荡周期)的指令64条; (2)2个机器周期指令45条; (3)4个机器周期——乘、除指令。;12MHz晶振,每个机器周期为1μs。 AT89S51单片机在硬件结构中有一个位处理机,对应这个位处理机,指令系统中相应地设计了一个处理位变量的指令子集,这在进行位变量处理的程序设计中使用十分方便。 3.2 指令格式 指令格式:指令的表示方法。 指令通常由两部分组成:操作码和操作数。 操作码——指令进行什么操作。 操作数——指令操作的对象。可能是一具体数据,也可能是指出到哪里取得数据的地址或符号。 指令长度不同,格式也就不同。;(1)单字节指令:操作码和操作数同在一个字节中。 (2)双字节指令:一个字节为操作码,另一个字节是操作数。 (3)三字节指令:操作码占一个字节,操作数占二个字节。 3.3 指令系统的寻址方式 寻址方式——在指令中说明操作数所在地址的方法。 一般说,寻址方式越多,功能就越强,灵活性则越大,指令系统就越复杂。 寻址方式所要解决的主要问题就是如何在整个存储器和寄存器的寻址空间内快速地找到指定的地址单元。 下面介绍指令系统7种寻址方式。;具体指令:MOV 42H,62H 把片内RAM中62H单元的内容送到片内RAM中的42H单元中。 直接寻址是访问片内所有特殊功能寄存器的唯一寻址方式。 3. 寄存器间接寻址方式 寄存器中存的是操作数地址,即先从寄存器中找到操作数的地址,再按该地址找到操作数。 为了区别寄存器寻址和寄存器间接寻址,在寄存器间接寻址方式中,应在寄存器名称前面加前缀标志“@”。 例如:MOV A,@Ri ;i=0或1;其中, Ri的内容为40H,即把内部RAM 40H地址单元中的内容传送给A。 4.立即数寻址方式 直接在指令中给出操作数——也称立即数。为了与直接寻址指令中的直接地址加以区别,需在操作数前加前缀标志“#”。 例如: MOV A,#40H 第一个字节是操作码,第二字节是立即数,就是放在程序存储器内的常数。;5.基址寄存器加变址寄存器间址寻址方式 以DPTR或PC作为基址寄存器,以累加器A作为变址寄存器,以两者内容相加形成的16位地址作为目的地址进行寻址。 例如指令: MOVC A,@A+DPTR 其中,(A)=05H,(DPTR)=0400H,指令执行结果是把程序存储器0405H单元的内容传送给A。 本寻址方式的指令有3条: MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR 前两条指令适用于读程序存储器中固定的数据。例如,将固定的、按一;定顺序排列的表格存放在程序存储器中,在程序运行中由A的动态参量来确定读取对应的表格参数。 第3条为散转指令,A中内容为程序运行后的动态结果,可根据A中不同内容,实现跳向不同程序入口的跳转。 6.相对寻址方式 解决程序转移。该寻址是以该转移指令的地址(PC值)加上它的字节数,再加上相对偏移量(rel),形成新的转移目的地址,从而程序转移到该目的地址。转移的目的地址用下式计算: 目的地址=转移指令所在的地址+转移指令字节数+rel ;其中,偏移量rel是带符号8位二进制补码数,–128~+127。 程序转移范围是以转移指令的下条指令首地址为基准地址,相对偏移在–128~+127之间。 例如, SJMP rel 程序要转移到该指令的PC值加3再加上rel的目的地址处。编写程序时,只需在转移指令中直接写要转向的地址标号。 例如: SJMP LOOP “LOOP” 为目的地址标号。汇编时,由汇编程序自动计算和填入偏移量。但手工汇编时,偏移量的值由手工计算。;7.位寻址方式 对内部RAM和特殊功能寄存器具有位寻址功能的某位内容进行置1和清0操作。 位地址一般以直接位地址给出,位地址符号为“bit”。 例如:MOV C,bit 其具体指令:

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档