- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第3章MCS-51的指令系统3.2指令格式3.3指令系统的寻址方式1.寄存器寻址2.直接寻址1.直接寻址2.直接寻址3.寄存器间接寻址3.寄存器间接寻址3.寄存器间接寻址3.寄存器间接寻址4.立即寻址5.基址寄存器加变址寄存器间接寻址
(或称变址寻址)6.位寻址位寻址范围包括:(1)内部RAM中的位寻址区。位有两种表示方法,例如,40H;另一种是单元地址加上位,例如,(28H).0,指的是28H单元中的最低位。它们是等价的。(2)特殊功能寄存器中的可寻址位可寻址位在指令中有如下4种的表示方法:a.直接使用位地址。例如PSW.5的位地址为0D5H。b.位名称的表示方法。例如:PSW.5是F0标志位,可使用F0表示该位。c.单元地址加位数的表示方法。例如:(0D0H).5。d.特殊功能寄存器符号加位数的表示方法。例如:PSW.5。7.相对寻址7.相对寻址寻址方式总结:111条指令,按功能分类,可分为下面5大类:(1)数据传送类(28条)(见P75表3-1)(2)算术操作类(24条)(见P80表3-2)(3)逻辑运算类(25条)(见P86表3-4)(4)控制转移类(17条)(见P93表3-7)(5)位操作类(17条)(见P97表3-8)指令中符号的意义:Rn当前寄存器区的8个工作寄存器R0~R7(n=0~7)。Ri当前选中的寄存器区中可作间接寻址寄存器的2个寄存器R0、R1(i=0,1)。Direct直接地址,即8位的内部数据存储器单元或特殊功能寄存器的地址。#data包含在指令中的8位立即数。#data16包含在指令中的16位立即数。rel相对转移指令中的偏移量,为8位的带符号补码数DPTR数据指针,可用作16位的数据地址寄存器。bit内部RAM或特殊功能寄存器中的直接寻址位。C(或Cy)进位标志位或位处理机中的累加器。addr1111位目的地址addr1616位目的地址@间接寻址寄存器前缀,如@Ri,@A+DPTR(X)X中的内容。((X))由X寻址的单元中的内容。→箭头右边的内容被箭头左边的内容所取代。***指令系统:根据设计使某台计算机具有的指令的集合便构成了这一计算机的指令系统。MCS-51系列单片机的指令系统:共有111条指令。数据传送算术操作逻辑运算控制转移位操作3.1指令系统概述MCS-51系列单片机的特色例如:LOOP:ADDA,#10H;(A)←(A)+10H(1)方括号[]表示该项是可选项,可有可无。(2)标号是用户设定的符号,它实际代表该指令所在的地址。标号必须以字母开头,其后跟1~8个字母或数字,并以“:”结尾。(3)操作码是用英文缩写的指令功能助记符。它确定了本条指令完成什么样的操作功能。如:ADD表示加法操作。任何一条指令都必须有助记符项,不得省略。(4)操作数表示参加操作的数据。(5)注释部分是在编写程序时,为了增加程序的可读性,由用户拟写对该条指令或该段程序功能的说明。[标号:]操作码[目的操作数][,源操作数][;注释]寻址:就是寻找操作数所在单元的地址。寻址方式:如何确定操作数所在地址的方法。寻址方式种类:(4)立即寻址(1)寄存器寻址(3)寄存器间接寻址(2)直接寻址(5)基址寄存器加变址寄存器间接寻址(7)相对寻址(6)位寻址定义:寻址某工作寄存器,自该寄存器读取或存放操作数,以完成指令所规定的操作。说明:可以寻址的寄存器种类:工作寄存器R0-R7,累加器A,寄存器B,数据指针DPTR,位处理器C。例MOVR3,A;R3←(A)ADDA,R2;A←(A)+(R2)定义:直接给出操作数所在的存储单元地址,以供寻址取数或存放的寻址方式称为直接寻址。说明:对于MCS-5l系列单片机,直接寻址可用于访问程序存储器,也可用于访问数据存储器。(1).访问程序存储器的为程序转移类指令。长转移LJMPaddrl6绝对转移AJMPaddr11长调子LCALLaddrl6绝对调子ACALLaddrll执行这些指令后,PC整16位或低11位地址将更换为指令直接给出的地址,机器将改为访问以所给地址为起始地址的存储器区间,取数(取指令)依次执行。
文档评论(0)