已阅读5页,还剩115页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章:MCS-51单片机指令系统,2.1概述,2.2寻址方式,2.3数据传输指令,2.4逻辑运算和移位指令,2.5控制传输和位操作指令,2.1:MCS-51指令系统概述,MCS-51有111条指令,不同指令的指令长度和执行时间不同。2.1.1指令格式2.1.2指令的三种表示2.1.3指令的字节2.1.4指令的分类2.1.1指令格式:指令格式:现有指令的结构。指令的结构由操作码和操作数(或操作数地址)组成。例如:MOVA,#0FFHADDA,R0,return,指令的表达式是标识指令的标志。1.二进制表达式形式:(以“累加器08H的内容”为例)00100100B操作码OP(加法)00001000B操作数数据(08H)特征:可由中央处理器直接识别和运行的形式。也称为机器代码,汇编语言的目标代码。缺点:不容易阅读、记忆、调试和修改。2.1.2指令的三种表示法:2,十六进制表示法:它是二进制形式的简化。00100100B24H00001000B08H该表格可用作在实验室等少数环境中输入程序的辅助手段。然而,这种形式的指令格式必须由相应的监控程序翻译成二进制“机器代码”,然后存储在程序存储器中并运行。二进制表示形式,十六进制表示形式,3,指令的“助记”模式(也称为“汇编格式”):00100100B24H00001000B08HADDA,#08H1,这是一种用英文单词或字母和数字表示指令功能的形式。这是一种易于阅读、书写和交流的表达方式。2.这种“汇编”格式的指令必须“翻译”成二进制形式的“机器代码”,然后才能被中央处理器识别和执行。3.三种不同的表现形式适用于不同的场合。本章以汇编的形式介绍指令系统。二进制表示十六进制表示程序集格式,并返回2.1.3指令的字节数。在MCS-51单片机的指令系统中,由于指令操作码和操作数的不同,指令(在存储器中)的长度也不同。它分为单字节、双字节和三字节。单字节指令(49段):没有操作数,只有操作数。无操作数:例如,incdptr 10100011 binca 00000100 b特性):操作数隐含在操作码中。包含操作数寄存器名的单字节指令:例如,MOVA,R011101000BMOVA,R111101001B特性:寄存器名以三位数代码的形式位于指令的最后三位。双字节指令(46段):指令的操作码和操作数各占一个字节。例如,MOVA,#data01110100Bdata显然:8位操作数本身占用一个字节。n,n 1,mova,# data,程序存储器中双字节指令的存储图,三字节指令(16条):指令中的操作数是双字节。例如:movdptr、# data161001000b、data15-8、data7-0或:指令分别包含1字节操作数和1字节操作数地址。例如,MOVdirect,#data: mov20h,# 0ffh,# movdptr,#data16,# movdirect,# data,三字节指令在内存中的存储示意图,指令的字节数和运行时间,指令的字节数是否意味着长指令周期?从表中可以看出,指令的字节数不等于指令周期。返回,2.1.4指令分类,MCS-51单片机指令根据其功能可分为五种类型:1。数据传输类型说明:完成单片机内部的数据传输。它分为8位数和16位数。除了奇偶校验位,指令的执行对PSW没有影响。2.算术运算指令:用于操作数之间的加法、减法、乘法和除法运算。特征:在大多数情况下,操作数之一在累加器A中,结果也保存在累加器A中。运算结果将影响PSW(进位标志、奇偶校验和溢出标志等)。)。3.逻辑运算和循环移位指令:操作数之间的逻辑加法、逻辑与、求逆和异或运算。大多数情况下,操作数在中,结果也存储在中。移位指令分为左移位、右移位、带进位和不带进位。与算术指令相比,逻辑指令基本上不影响PSW的内容。,4。控制转移类指令:有条件转移,无条件转移,呼叫和返回。功能:通过修改程序指针个人电脑的内容,中央处理器可以转移到另一个地方执行,从而改变程序的流向。5.位操作指令:位传输、位位置、位操作和位控制传输。特征):逐位操作,而不是逐字节操作。位控制传输的判断不是检测一个字节,而是检测一个位并决定是否传输程序。这些说明基本上不影响PSW的内容。return,2.2寻址模式,在指令的操作数位置,用于表征和查找操作数的模式被定义为“寻址模式”。正确理解和掌握寻址方式是学习和使用指令的关键。在MCS-51单片机中,有七种寻址方式。它们是:1、寄存器寻址5、索引寻址;2、直接寻址6、相对寻址;3,立即数寻址7,位寻址。4、寄存器间接寻址,继续,2.2.1寄存器寻址,当所需操作数在内部寄存器Rn中时,将此寄存器名称Rn直接写在指令操作数的位置上。例如:MOVA,R7;寄存器R7的内容被发送到累加器a. MOV20H,R0;将寄存器R0中的数据发送到存储器20H单元INCR1;地址,R3;加入R1登记册的内容;将A的内容和寄存器R3的内容相加,以将A寄存器寻址模式的大部分指令发送为单字节指令。指令本身不包含操作数,但包含用于保存操作数的寄存器的3位代码。以Rn MOVA为例,使用R7寄存器,因此rrr=111。指令的机器码是:0EFH,11101rrr,操作码,寄存器代码,return,E8H EFH,MOVA,rn,2.2.2直接寻址,指令本身包含操作数的8位或16位地址。该指令直接给出操作数的地址。例如:MOVA,30H内存30H单元的内容被发送到累加器,其中30H是内存中操作数的地址。显然,直接寻址指令的长度是两到三个字节。使用直接寻址时应注意三个问题:1 .指令中的直接助记符是以十六进制数表示的操作数的地址。当地址恰好在SFR区域时,指令也可以用寄存器名来表示。例如,MOVA,80H可以写为MOVA,P0,它用SFR中的寄存器名称替换其物理地址80H。显然,后者更容易阅读和交流,所以我们提倡在SFR中使用注册名称而不是直接地址。例如:MOVA、瑞士联邦储备银行;串行数据缓冲数据发送到amovie,# 00h初始化中断使能寄存器movth1,# 0feeh。给定时器1分配一个初始值虽然使用SFR的寄存器名而不是直接地址会给程序带来可读性,但在汇编过程中仍有必要将寄存器名转换为直接地址。2,当直接地址在工作寄存器区域时,可以使用两种寻址方法来访问。例如:MOVA,00H;将内存中的00H单元数据发送到累加器AMOVA、R0;工作寄存器R0的内容被发送到累加器A。这里使用不同的寻址方法,指令结构也不同。前者是11100101(0E5H)和00000000(00H)双字节。后者的机器码是11101000(0E8H)单字节;在物理结构上,内存的R0和00H单元是完全相同的单元,所以不同指令的执行结果是相同的。类似地,累加器A: INCA寄存器寻址方法(单字节);INCACC直接寻址(双字节);INC0E0H直接寻址(双字节)。在指令系统中,字节地址和位地址是完全不同的概念。前者由直接表示,而后者由位表示,但所有指令都是由十六进制表示的数字。例如:MOVA,20H;将内存20H单元的内容发送到内存管理器20H;位地址区中20H位地址的内容被发送到PSW中的Cy。片内随机存取存储器(20H-2FH)位寻址区结构图,2FH,20H,字节地址,返回,24H,位地址,返回前一时间,2.2.3立即寻址,指令本身直接包含所需的8位或16位操作数。请将此号码称为“立即”(标有#)。例如:mova,# 30h。(8位)立即被计数到累加器amovdptr,# 2000h16位被立即计数并发送到DPTR累加器注:MOVA之间的差值,# 30 hmova和30h。立即寻址的指令长度是2或3个字节。,n,n 1,ROM,累加器a,mova,# 30h指令执行流程,ROM,DPTR,MOVDPTR,#2000H指令存储和执行,返回,2.2.4寄存器间接寻址,该指令包含保存操作数地址的寄存器Ri。MOVA,Ri(i=0,1)中央处理器首先根据指令中的寄存器名Ri找到操作数地址,然后从地址中找到操作数x。例如,movr0,# 30h。立即计数至R0寄存器MOVA。 R0从随机存取存储器单元h中取出数据,并将其发送给累加器一个音符 MOVA,R0和MOVA,R0指令之间的差值。30H,R0,00H,累加器a,1,2,3,使用寄存器间地址指令时需要注意的三个问题:1,寄存器间地址Ri只能使用R0,R1寄存器(i=0,1)。2.互寻址方法不仅适用于片上随机存取存储器,也适用于片外随机存取存储器。Ri寄存器用于片内随机存储器,寻址范围为00HFFH。对于片外随机存取存储器,Ri或DPTR可用作地址寄存器。两者的区别在于后者的地址范围是0000小时 1000小时,两者都可以是随机存取存储器和只读存储器。3.地址间指令不能访问SFR中的单元。例如,下列程序是错误的:MOVR1,#80HMOVA,R1(因为80H是SFR的物理地址),MCS-51片内和片外数据存储器原理图,特殊功能寄存器SFR,通用数据存储器,80H7FH,00H,FFH,片内数据存储器256B字节,64kb字节,片外数据存储器64KB,0000 h,ffffffh,注意:1,访问片内RAM20H存储器位置;MOVA,20H2,访问片外随机存储器存储单元;MOVR0、#20HMOVXA、R03,虽然片内和片外随机存取存储器单元的00H-FFH地址重叠,但地址混淆不会因指令不同而发生。返回,2.2.5索引寻址,该指令使用DPTR或个人计算机的内容作为基址,然后将其添加到累加器A的内容中,其总和作为操作数地址。例如,MOVXA,一台个人电脑;将个人计算机和操作数的内容相加,得到操作数地址,并将此操作数发送给DPTR;当将DPTR的内容添加到的内容中以获得操作数地址并将该操作数发送到以使用索引指令时,应预先分配a和DPTR以获得操作数地址。索引指令只适用于访问只读存储器,如查找表等。示例:众所周知,只读存储器中的0302H单元有一个数字x,现在它被送到累加器A进行试编程。MOVDPTR,#0300H。Dptromova,# 02h。立即计数到累加器“DPTR”;a,索引寻址图,02h,0300h,alu,0302h,累加器a,dptr,0300h 02h0302h,movca, adptr,return,2.2.6相对寻址,从ROM的单元00302检索传输指令中使用的寻址方法。在MCS-51单片机的指令系统中,有两种传输指令:相对传输(2或3字节)和绝对传输(3字节)。在绝对传输指令中,指令直接给出传输的目标地址(2字节地址),并在执行过程中直接将目标地址发送给PC机,从而控制程序的传输;在相对传输指令的执行中,指令中的PC值和8位偏移相加,形成要传输的目标地址。SJMPrel在指令中有一个8位偏移rel作为带符号位的补码,因此控制程序的传输范围是127 -128。54h、2002h、alu、2056h、累加器A、PC、2002H 54H2056H、操作码、偏移量,例如SJMP54H;(80H,54H),2000H,2002H,(LOOP1),相对寻址是程序员常用的寻址方法,因为它与绝对寻址相比具有良好的“浮动性”。使用时,要注意三点:1。当1时,中央处理器执行地址计算,个人计算机值是执行该指令后的地址值。上面的例子显示了指令本身的第一个地址是2000H,并且在执行后变成2002H(即下一个指令的第一个地址)。如果使用三字节相对分支指令,则个人计算机=个人计算机3。返回上一页,2。偏移量的计算:rel=目的地址-源地址-2(2字节指令)或rel=目的地址-源地址-3(3字节指令)结果以补码的形式写入。为了减少计算偏移量的计算,汇编程序允许使用“符号地址”代替偏移量。例如,SJMPloop1汇编程序在翻译时自动计算符号地址并用结果替换。3.如果转移地址的范围超过相对地址的范围(如-127 128),应采用其他方法;否则,编译期间会提示错误。,返回2.2.7位寻址,位寻址指令(位操作指令)中使用的位地址。一般来说,系统数据是按字节(8位)存储和处理的。在单片机在控制和检测中的应用中,系统的许多输入输出数据都属于开关信号。这些开关值信号以位的形式被操作、处理和存储。在MCS-51单片机的硬件设计中,MCS-51单片机控制检测系统、驱动器、电机、外设1、外设2、状态信号、状态信号和控制信号充分考虑了这个“布尔”变量的处理。不仅“位操作”指令是在指令系统中设计的,而且“位寻址区”是专门在片上随机存取存储器区域中打开的。这样,布尔变量可以像字节数据一样存储和寻址。除了位寻址区,内存中的大部分SFR都可以通过位来寻址。换句话说,SFR有自己的字节地址,寄存器中的每个位都有自己的位地址。示例:SETB20H;将位地址20H设置为SETB90HP1端口的d0位置与字节地址中的直接地址相同。为了增加程序的可读性,SFR中的所有位地址都可以用符号地址代替。与第二个示例一样,可以完全使用以下指令格式:MOVP1.0P0的d0位置类似于MOVC和ACC.7Cy将累加器中的d7位发送到PSW,在汇编程序翻译时,必须首先将符号地址转换为实际位地址。返回,2.3数据传输指令,2.3.0特征传输指令2.3.1内部数据传输类指令2.3.2外部数据传输类指令2.3.3堆栈操作指令2.3.4数据交换
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 版电路第五版邱关源第二章教案
- 部编版小学三年级语文下册《习作国宝大熊猫》教案
- 桥梁施工合同管理与风险防控
- 幼儿园大班上学期美术手指舞蹈教案
- 车间安全生产培训教材教案(2025-2026学年)
- 《机器人走迷宫》修改版教案
- 心理健康教育教师岗位职责
- 物业维修审计合同范本
- 铁锅炖加盟合同范本
- 纸箱购销合同范本
- 平面构成-特异构成的创意设计
- (完整word版)PEP五年级上册英语教案
- 银行跨银行现金管理产品运维外包管理办法模版
- 室内装饰工程施工进度横道图
- 绿色化学工艺-绿色技术教学课件
- 幼儿园财务审计报告范文
- 熔铝工安全操作规程
- 建筑电气基础知识第一章
- 国开电大应用写作(汉语)形考任务5参考答案
- 三标体系内审员培训课件
- 体育商业综合体规划方案
评论
0/150
提交评论