–51指令系统.docVIP

  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文档。上传文档
查看更多
第三章 MCS –51指令系统 3.1 指令系统概述 指令系统是指某一种计算机所有指令的集合。 对计算机而言,这是一组二进制数的输入,实际上是一组电平的输入。这些输入能在一个指令周期内产生人们预先规定的动作。显然这不是一组随机的二进制数据输入。 指令系统是联系硬件和软件的桥梁。指令系统对计算机的作用相当于逻辑函数表对逻辑器件(门、触发器、加法器、移位寄存器)的作用。当然指令系统要比逻辑函数表复杂得多。 一种计算机指令系统设计的好坏,往往标志着该计算机功能的强弱,计算机的设计往往先从设计它的指令系统开始。 指令可以用两种不同语言形式来表示:机器语言和汇编语言。 机器语言指令即二进制代码,一般称作机器码。计算机能对其直接识别、分析解码和执行。 汇编语言指令是用助记符表示,它便于程序员编写、阅读和识别程序。 MCS-51单片机计有111条不同的指令。 3.1.1 机器语言指令格式 指令由操作码和操作数两部分组成,操作数可以是要被操作的数据本身(立即数),也可以是数据所在单元的地址或寄存器。指令格式包括指令长度和指令内部信息的安排等。一条长指令通常可以分成几段存放和处理,每一段的长度与微处理机的字长相等。8位微处理机是以8位二进制数(字节)为基础,MCS-51单片机采用变长指令,有单字节、双字节和三字节三种指令格式。 一字节指令(49条) 这类指令的二进制代码既包含了操作码信息,又包含了操作数信息。有两种情况: ⑴ 指令码中隐含着对某一个寄存器的操作。 例如:指令码1010 0011 即A3H就表示INC DPTR,数据指针内容加1。 ⑵ 由指令中的最后三位r r r(000~111)指定要操作的工作寄存器R0~R7。 例如:1110 1 r r r 就表示MOV A,Rn ,把工作寄存器中的内容送A累加器。 二字节指令(46条) 这类指令的第一字节为操作码,第二字节为操作数或操作数的地址。 例如:74H,8AH,就表示MOV A,#8AH,即把立即数8AH送A累加器。 其一般形式为MOV A,#DATA, 0111 0100 立即数 ,其中#DATA 表示立即数。 三字节指令(16条) 这类指令的第一字节为操作码,后跟两个字节的操作数。 例如:53H,3AH,48H就表示ANL 3AH,48H,即3AH单元的内容与立即数48H进行“与”操作,其结果送入3AH单元。 其一般形式为ANL direct,#DATA 0101 0011 直接地址 立 即 数 若按指令的执行时间可分为以下三类: ⑴ 单周期指令(65条) ⑵ 双周期指令(44条) ⑶ 四周期指令(2条) 若按指令的功能可分为以下五类: ⑴ 数据传送类指令(29条) ⑵ 算术运算类指令(24条) ⑶ 逻辑运算类指令(24条) ⑷ 控制转移类指令(17条) ⑸ 位操作类指令(17条) 3.1.2 汇编语言指令格式 操作码助记符 [目的操作数,源操作数] 例如 MOV A,R0就表示把工作寄存器R0中的数据送入A累加器。 3.1.3 汇 ·Rn: 表示当前工作寄存器R0~R7中的一个。 ·@Ri: 表示寄存器间接寻址,常常作间接寻址的地址指针。其中Ri代表R0和R1寄存器中的一个。 ·Direct: 表示内部数据存贮器单元的地址及特殊功能寄存器SFR的地址,对SFR而言,既可使用它的物理地址,也可直接使用它的名字。·#data: 表示8位立即数,即8位常数,取值范围为#00H~#0FFH ·#dat16: 表示16位立即数,即16位常数,取值范围为#0000H~#0FFFFH ·addr16: 表示16位地址 ·addr11: 表示11位地址 ·rel: 用补码形式表示的地址偏移量,取值范围为-128~+127。 ·Bit: 表示内部RAM和SFR中的具有位寻址功能的位地址。SFR中的位地址可以直接出现在指令中,为了阅读方便,往往也可用SFR的名字和所在的数位表示。如:表示PSW中奇偶校验位,可写成D0H,也可写成PSW.0的形式出现在指令中。 ·@: 表示间接寻址寄存器或基址寄存器的前缀符号。 ·$: 表示当前指令的地址。 MCS-51 单片机有七种寻址方式。 寄存器寻址(Register Addressing) 在指令中指出存放操作数的寄存器,因为寄存器在片内RAM中,所以其特点是速度快。 如 MOV A,R0,INC DPTR,MUL AB,DEC R7等。 寄存器包括32个工作寄存器(分4组)以及部分专用寄存器。指令只能使用当前寄存器组的8个通用寄存器R0~R7,对不同寄存器组可以通过PSW 中的RS0,RS1

文档评论(0)

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

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

1亿VIP精品文档

相关文档