- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机学习第三章
第3章 MCS一51单片机的指令系统 3.1 指令格式 3.2 寻址方式 3.3 数据传送指令 3.4 算术运算指令 3.5 逻辑运算和环移指令 3.6 位操作指令 3.7 控制转移指令 3.8 调用和返回指令 3.9 伪指令 3.10汇编语言程序设计 3.1 指令格式 单片机要执行某种操作,用户必须按照格式编写指令,单片机才能识别并准确操作。指令的编码规则称为指令格式。 3.1.1 指令的格式 1.指令的一般格式 MCS一51单片机指令的一般格式为:操作码 操作数。例如指令:74H 30H。 1)操作码 用来表示执行什么样的操作,例如传送、加、减等。MCS一51系列单片机的操作码为8位二进制的机器码,在指令中为第一字节。用机器码写成的指令是机器指令,也称为指令代码。 3.1 指令格式 2)操作数 表示参与操作的数据或数据的存储地址,不同类型的指令,操作数的个数是不一样的,可以有3个、2个、1个等。在具有多个操作数的指令中,把它们分别称为第一操作数、第二操作数等。如果操作数是一个直接参加操作的数据,这种操作数称为立即数;而大部分操作数存放于寄存器或数据存储器的某个存储单元,操作数字段仅指出操作数所在的寄存器或存储器地址。 2.常用指令格式 编写指令时,要记住各种由“0”和“1”二进制数组成的代码和他们的含义是很困难的,既容易出错,又不易检查。所以常用的指令格式是以助记符表示的符号指令,也称汇编语言,由标号、操作码助记符、操作数和注释4个字段组成,格式如下: [标号:] 操作码助记符 [操作数1] [,操作数2] [;注释] 其中,方括号内的项为任选项,需要此项时,指令中不写方括号;两操作数之间应以逗号分开。 3.1 指令格式 例如,指令: START: MoV A, #79H ;A←79H 1)标号 标号是用户定义的符号,由以字母开始的1~8个字符(字母或数字)组成,它代表指令的符号地址,通常在程序分支、转移等所需要的地方加上一个标号,并不是每条指令都必须有标号。当将指令转换成机器指令时,指令第一字节(也称首字节)的存储单元地址值赋给该标号。 2)操作码助记符 助记符是一些代表操作含义的英文缩写,一般由2~5个英文字母组成,如“MOV”表示“传送”、“ADD”表示“加”等。操作码助记符对应的机器码是指令的第一字节,也是指令不可缺少的部分。 3)操作数 与机器指令格式中的操作数相似。 4)注释 注释是对本指令或本段程序的功能说明,便于对程序的阅读理解,在转换成机器指令时不予考虑。注释的前面需加分号“;”。 3.1 指令格式 单片机识别机器指令,编程人员使用符号指令,机器指令与符号指令之间有一一对应的关系,绝没有重复。各种指令的机器码不需要记忆,编程人员可查阅机器指令与符号指令的映射表将符号指令译成机器指令,这个过程称为汇编;但更多的是用专门的软件来完成汇编过程。 3.1.2 指令的分类 MCS一51指令系统有33种操作功能。指令助记符与寻址方式组合,得到111种指令。分类如下: 3.1 指令格式 1.按字节数分类 1) 单字节指令,有49条。 2) 双字节指令,有45条。 3) 3字节指令,有17条。 2.按指令执行时间分类 1) 单周期指令,有64条。 2) 双周期指令,有45条。 3) 四周期指令,乘、除各有1条。 3.1 指令格式 3.按功能分类 1) 数据传送指令,有28条。 这类指令主要用于单片机片内RAM和特殊功能寄存器SFR之间传送数据,也可以用于单片机片内和片外存储单元之间传送数据。数据传送指令是把源地址中操作数传送到目的地址(或目的寄存器)的指令,在该指令执行后源地址中的操作数不被破坏。源操作数有8位和16位之分,前者称为8位数传送指令,后者叫做16位数传送指令。 交换指令也属于数据传送指令,是把两个地址单元中内容相互交换。因此,这类指令中的操作数或操作数地址是互为“源操作数”和“目的操作数”的。 3.1 指令格式 2) 算术运算指令,有24条。 算术运算指令用于对两个操作数进行加、减、乘、除等算术运算。在两个操作数中,一个应放在累加器A中,另一个可以在某个寄存器或片内RAM单元中,也可以放在指令码的第二和第三字节中。指令执行后,运算结果便可保留在累加器A中,运算中产生的进位标志、奇偶标志和溢出标志等皆可保留在PSW中。参加运算的两数可以是8位的,也可以是16位的。 3) 逻辑运算和环移指令,有25条。 这类指令包括逻辑运算和环移两类指令。逻辑操作指令用于对两个操作数进行逻辑乘、逻辑加、逻辑取反和异或等操作,大多数指令也需要把两个操作数中的一个预先放入累加器A,操作结果也在累加器A中。环移指令可以对累加器A中的数进行
文档评论(0)