第4章 MCS-51指令系统.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MCS-51单片机原理与应用 第4章 MCS-51指令系统 MCS-51的7种寻址方式.寻址方式,是学习指令的前提。 MCS-51有111条指令,其中49条单字节指令,45条双字节指令,17条三字节指令;按运算速度分类,有64条单周期指令,45条双周期指令,2条四周期指令。 4.1 指令系统概述 指令:是规定计算机进行操作的命令。 指令系统:计算机能够执行的各种指令的集合。 MCS-51指令系统是最普遍的。 4.1.1 机器指令与汇编语言指令 机器指令:以二进制代码表达,能直接被计算机所识别和执行。 指令由操作码和操作数两部分组成。 机器指令难以被人们理解、记忆与使用 汇编语言指令:用便于记忆与理解的助记符和符号地址来表达的指令。 指令格式:指令的表示形式。 两部分组成,即操作码和操作数。 操作码:规定指令进行什么操作 操作数:指令操作的对象 使P1.0清零的汇编语言指令如表中第2列第2行所示,其中助记符CLR(clear缩写)就是操作码,P1.0就是符号地址。 汇编语言指令与机器指令之间有一一对应的关系。 指令由操作码和操作数组成,操作数是可选项,还有源、目之分,指令格式举例: 操作码 [目的操作数], [源操作数] MOV   A, #30H 操作码:由MCS-51关键字表示的字符串,用来指示指令的操作功能。 操作码与操作数之间必须用空格分隔。 操作数:指示参加指令操作的数据或数据的地址,与操作码一起确定了指令所要执行的具体操作。 操作数如果有2个或多个,则操作数之间必须用逗号分隔。操作数可以是寄存器名、常数、标号名;还可是表达式,如ADD A,‘a’+1;也可用PC的当前值“$”,如SJMP $。 4.1.3 指令系统标识符 指令系统中所用符号的说明 1.Rn:工作寄存器n为0-7 2.#data:8位立即数,范围00H-FFH 3.Direct:8位直接地址,也可以为SFR中的一个 4.@Ri:表示寄存器间接寻址,i=0、1 5.#data16:16位立即数 6.@DPTR:表示以DPTR为数据指针的间接寻址 7.Bit:位寻址 8.addr11、addr16:11、16位目标地址 9.Rel:8位带符号地址偏移量 10.$:当前指令的地址 在注释指令功能时,对操作数表述作了如下处理: (1)(Rn)→Rn,如(A)→ A。 (2)对直接地址direct的括号仍予保留,如要表示30H单元的内容仍用(30H)。这样在注释立即数#data时,可省去前缀的#,如立即数#30H,可以简写为30H。 指令的分类 1.数据传送指令(28) 主要用于单片机片内RAM和特殊功能寄存器SFR之间的数据传送,也可在片内和片外的存储单元中传送,传送结束后源地址的操作数不被破坏,数值不变。 2.算术运算指令(24) 用于对两个操作数进行加、减、乘、除等算术运算。结果放在A里面。 3.逻辑操作和环移指令(25) 逻辑操作结果也放在累加器A中,环移是对A中数进行操作,有左右和是否带进位(CF)之分。 4.控制转移指令(17) 分为条件转移,无条件转移,调用和返回等。 目的:改变程序执行的流向。 实现方法:通过改变程序计数器PC中的值。 5.位操作指令(17) 布尔变量操作指令,分为位传送、位置位、位运算和位控制转移指令四类。 通过对字节当中的某一位来进行相应的操作。 4.2 寻址方式 寻址方式:寻找操作数地址的方式。寻址方式越丰富,CPU的功能就越强,灵活性就越大。 MCS-51单片机的指令系统中,设有7种寻址方式,在同一条指令中的源、目操作数,可能有不同的寻址方式,下面以源操作数寻址方式为例来加以阐述。 4.2.1 立即寻址 立即寻址是指参加运算的操作数已经在指令中直接给出,这种形式的操作数称为立即数。立即数要前缀“#”,以区别直接地址。 立即寻址一般为双字节指令,如第1条指令,操作码74占一个字节,操作数30为8位立即数,也占一个字节。 设内部RAM中33H单元中内容为44H,34H单元中内容为0AFH,R0中内容为33H,R1中内容为00H,给出以下每一条指令执行后A中的值。 MOV A, #34H MOV A, 34H MOV A, R1 MOV A,@R0 4.2.2 直接寻址 直接寻址是指指令中直接给出操作数的地址,即给出了参加运算或传送的数据在内存单元的地址。 直接地址只能用来表示片内RAM、位地址空间以及SFR,位地址与SFR只能用直接寻址方式来访问。 寻址范围:(1) 内部RAM的128个单元 (2) 特殊功能寄存器。除了以单元地址的形式外,还可用寄存

文档评论(0)

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

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

1亿VIP精品文档

相关文档