第3章 MCS-51系列单片机的指令系统.pptx

第3章 MCS-51系列单片机的指令系统.pptx

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

3.1 指令格式及分类 一、指令格式 80C51系列单片机指令有两种标识方式:机器语言方式和汇编语言方式。机器语言方式由二进制代码组成(通常用十六进制表示),被称为机器指令。 1.汇编语言指令格式 汇编语言指令的一般格式如下: [标号:] 操作码 [第一操作数][,第二操作数][,第三操作数] [;注释] 第3章 MCS-51系列单片机的指令系统 说明: (1)带方括号的部分为可选项 (2)标号是用符号表示的一个地址常量。它表示该指令在程序存储器中的起始地址。标号的命名规则是:必须以字母开头,长度不超过6个字符,并以“:”结束。 (3)操作码表示指令的操作功能。每条指令都有操作码。 (4)操作数表示的是参与操作的数据来源和操作之后结果数据的存放位置,可以是常数、地址或寄存器符号。指令的操作数可能有1个、2个或3个,有些指令可能没有操作数。 操作数与操作数之间用“,”分隔,操作码与操 作数之间用空格分隔。具有保存操作结果的操作数称为目的操作数,只提供数据的称为源操作数。 (5)注释字段是编程人员对该指令或该段程序的功能说明,是为了方便阅读程序的一种标注。注释以“;”开始,当汇编语言源程序被汇编成机器语言程序时,该项被舍弃。 2.机器语言指令格式 机器语言指令是一种二进制代码,它包括两个部分:操作码和操作数。 80C51指令系统中有单字节、双字节和三字节共3种指令。机器指令格式如下: (1)单字节指令 在单字节指令中,操作码和操作数共占一个字节,其中操作数通常为以隐含形式指定的常用寄存器。其指令格式如下: 其中,方框前面的nn表示数据所在的地址,后边的方框中是指令的内容,下同。 例如INC DPTR指令,其功能为DPTR←(DPTR)+1。指令机器码为: 80C51系列单片机中,单字节的机器指令共有49条。 (2)?双字节指令 ?双字节指令的第一个字节为操作码,第二个字节为操作数或操作数的地址。这类指令的指令格式为: 例如MOV A,#00H指令,其功能为A←00H。指令机器码为: 80C51系列单片机中,双字节的机器指令共有46条。 (3)三字节指令 三字节指令的第一个字节为操作码,第二个字节和第三个字节都是操作数或操作数的地址。这类指令的指令格式为: 例如MOV 2FH,#00H指令,其功能为2FH←00H。指令机器码为: 二、指令分类 80C51系列单片机指令系统共有111条不同的指令。这些指令按每条指令的执行时间分类,有64条单周期指令,45条双周期指令和2条4周期指令;如果按字节数分类则有单字节的指令49条,双字节的指令46条,三字节的指令16条。 这些指令按指令操作功能划分,有以下5类: 数据传送指令(28条) 算术运算指令(24条) 逻辑运算及移位指令(25条) 控制转移指令(22条) 位操作指令(12条) 三、指令系统符号约定 1.Rn:n=0~7,表示当前工作寄存器区的8个工作寄存器R0~R7。 2.Ri:i=0,1。表示当前工作寄存器区的 2个工作寄存器R0,R1。 3.direct:表示8位内部数据存储单元的地址。当取的值在00H~7FH范围时,表示内部数据RAM;当取的值在80H~0FFH范围时,表示特殊功能寄存器。表示特殊功能寄存器时也可以使用寄存器名称符号来代替其直接地址。 4.#data:表示8位立即数。“#”表示后面的data为立即数。 5.#data16:表示16位立即数。“#”意义同上。 6.addr11:表示11位目的地址。用于ACALL和AJMP指令中,它可以是下一条指令地址第一个字节所指出的同一个2K程序存储空间中的任何值。 7.addr16:表示16位目的地址。用于LCALL和LJMP指令中,它可以是64K程序存储空间中的任何值。 8.rel:表示带符号的8位偏移量,被用在SJMP和所有条件转移指令中。它可以是下一条指令地址-128~+127范围内的任何值。 9.bit:表示8位内部数据存储空间中或特殊功能寄存器区中可按位寻址区的8位位地址。当位地址取值为00H~7FH时,表示内部数据RAM20H~2FH单元中每一位的位地址,当位地址取值为80H~0FFH时,表示特殊功能寄存器的位地址。 10./bit:表示在位操作指令中,对该位(bit)先取反,再参与运算,但不改变位(bit)的原值。 11.( ):表示某一寄存器、存储单元或表达式的内容。 12.(( )):表示某一寄存器、存储单元或表达式的内容的内容。 13.? @:表示其后的寄存器或表达式的值为操作数的地址。 (1)@Ri:表示寄存器Ri(i=0或1)中存放的是操作数的地址。如果该地址是内部数据存储区中的地址,其取值

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档