- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理与应用_04指令系统讲述
第4章 指令系统
4.1 概述
4.2 寻址方式
4.3 指令系统
4.1 概述
MCS-51单片机使用7种寻址方式,有111条指令。其中单字节指令49条,双字节指令45条,三字节指令17条,可分为以下7类:
(1)数据传送类指令29条;
(2)算术运算类指令24条;
(3)逻辑运算类指令20条;
(4)移位类指令4条;
(5)控制转移类指令18条;
(6)调用/返回类指令4条;
(7)位操作类指令17条。
在介绍指令功能之前,先对指令系统中使用的符号作以简要说明。
Rn:当前寄存器工作区中的寄存器,其中n=0~7;
direct:内部数据存储器地址,指定一个内部RAM单元或一个专用寄存器;
@Ri:通过R1或R0间接寻址,指定数据存储器RAM中的一个单元;
#data:指令中的8位立即数;
#data16:指令中的16位立即数;
addr11:11位目的地址,用在ACALL或AJMP指令中,表示调用或转移地址;
addr16:16位目的地址,用在LCALL或LJMP指令中,表示调用或转换地址;
rel:8位偏移量,用补码表示,用在SJMP等转移指令中;
bit:表示位寻址空间中的位地址,8位,寻址范围为0~FFH。
4.2 寻址方式
MCS-51单片机有7种寻址方式。
1.立即寻址
是指操作数在指令操作数域直接给出,因此也称为立即数,用符号“#”说明。
例如指令 MOV A;#25H
其中25H是立即数。其功能是指立即数25H送入累加器A中,如图4.1所示。
又如指令 MOV DPTR, #1856H
16位立即数送地址寄存器DPTR如图4.2所示。DPH表示DPTR的高8位,DPL表示低8位。实际上,16位立即数传送指令仅此一条。
2.直接寻址
是指操作数的地址直接在指令操作数域给出。
例如指令 MOV A,3CH
其中3CH为直接地址。指令功能是把内部RAM中3CH单元的数据传送给累加器A,其示意如图4.3所示。
由于直接地址只能用8位数表示,因此仅限于寻址内部数据存储器RAM和特殊功能寄存器,也是唯一能寻址特殊功能寄存器的寻址方式。
3.寄存器寻址
是指操作数在寄存器中,寄存器用符号表示。
例如指令 MOV A,R1
指令功能是把寄存器R1中的内容送入累加器A,其示意如图4.4所示。
寄存器寻址方式可访问4个寄存器工作区中的当前工作寄存器组R0~R7,也可用于累加器A、通用寄存器B,地址寄存器DPTR和进位位C。其中R0~R7由指令操作码的低3位表示,A、B、DPTR以及C隐含在指令操作码中
4.寄存器间接寻址
是指寄存器中存放的是操作数的地址,而操作数在存储器中。寄存器间接寻址用符号“@”表示。
例如指令 MOV A,@R0
R0中存放的是操作数地址,指令功能是把R0中的内容所指定的RAM单元中的数据送入累加器A中,其示意如图4-5所示。可用作间接寻址的寄存器有R0、R1、 DPTR和SP。
5.相对寻址
是以程序计数器PC的当前值为基地址,加上指令中给出的偏移量rel作为转移目的地址。由于目的地址是相对于PC中的当前值,所以称为相对地址。PC的当前值是指取出该指令后的内容,即下一条指令地址。因此,转移目的地址可用如下公式表示:
转移目的地址=下一条指令地址 + rel
偏移量rel是一个带符号的8位二进制数,表示范围为-128~+127。
例如指令 JC 80H
若进位标志Cy=0,则PC值不变;若进位位Cy=1,则以PC当前值加偏移量80H后所得的值作为转移目的地址,其示意如图4.6所示。
6.变址寻址
是以地址寄存器DPTR或程序计数器PC作为基址寄存器,累加器A作为变址寄存器,二者的内容相加,其和作为操作数地址。这种寻址方式只能访问程序存储器。
例如 MOVC A,@A+DPTR
指令功能为DPTR中的内容与A中的内容相加,其和所指示的单元的数送入累加器A,如图4.7所示。
7.位寻址
是指对一些内部RAM和特殊功能寄存器进行位操作时的寻址方式。在指令操作数域直接给出该位的地址。位地址与字节直接寻址的形式一样,主要由操作码来区分。
例如指令 ORL C,50H
指令功能是把位累加器Cy中的内容与50H所指示的位单元中的内容进行“或”运算,其结果在位累加器Cy中。
以上7种寻址方式,概括如表4.1所示。
表4.1 MCS-51寻址方式
4.3 指令系统
在MCS-51单片机使用了42种助记符,与7种寻址方式组合,构成111条指令。下面分为7 类予以介绍。
4.3.1 数据传送类指令
4.3.2 算术运算类指令
4.3.3 逻辑运算类指令
4.3.4 移位类指令
4.3
文档评论(0)