ImageVerifierCode 换一换
格式:PPT , 页数:124 ,大小:566KB ,
资源ID:14116165      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14116165.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式系统设计 (1)PPT推荐.ppt)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式系统设计 (1)PPT推荐.ppt

1、,2,十六进制表示方式:它是对二进制形式的一种简化。00100100B 24H 00001000B 08H 在实验室等少数环境下,可以将这种形式作为输入程序的一种辅助手段。但是,这种形式的指令格式必须由对应的监控程序把它们翻译成二进制的“机器码”后存入程序存储器并运行。,二进制表示的形式 十六进制表示的形式,3,指令的“助记符”方式(也称“汇编格式”):00100100B 24H 00001000B 08H ADD A,#08H 1,这是一种由英文单词或字母、数字来表征指令功能的 形式。是一种便于阅读、书写和交流的表示形式。2,这种“汇编”格式的指令必须把它“翻译”为二进制形式“机器码”后才能

2、为CPU所识别和执行。3,三种不同的表示方法适用于不同的场合。本章内容都以汇编的形式介绍指令系统。,二进制表示形式 十六进制表示 汇编格式,返回,2.1.3 指令的字节数,在MCS-51单片机的指令系统中,因指令操作码和操作数的不同,指令(在存储器中)长度也各不相同。分为单字节、双字节和三字节。单字节指令(49条):分无操作数、有操作数两种。无操作数:如 INC DPTR 10100011B INC A 00000100B【特点】:操作数隐含在操作码中。含有操作数寄存器名称的单字节指令:如:MOV A,R0 11101000B MOV A,R1 11101001B【特点】:寄存器名以三位数代码

3、的形式在指令的后三位。,双字节指令(46条):指令的操作码和操作数各占一个字节。MOV A,#data 01110100B data 很明显:8位的操作数本身占据一个字节。,n,n+1,mov a,#data,双字节指令在程序存储器的存放示意图,三字节指令(16条):指令中的操作数为双字节。MOV DPTR,#data16 1001000B,data15-8,data7-0 或者:指令中分别包含1个字节的操作数和1个字节的操作数地址。MOV direct,#data 举例:MOV 20H,#0FFH,MOV dptr,#data16,MOV direct,#data,三字节指令在存储器中存放的

4、方式示意图,指令的字节数与指令的运行时间,指令的字节多是否意味着指令周期就长?,从表中可见,指令的字节数与指令周期不是对等的关系,返回,2.1.4 指令的分类,MCS-51单片机的指令如果按功能划分可以分为五类:1,数据传送类指令:完成数据在单片机内部之间的传送。分为8位数和16位两种。除了奇偶位外,指令的执行对 PSW无影响。2,算术运算指令:用于操作数之间的加、减、乘除运算。【特点】:多数情况下:操作数之一在累加器A中,结果也保留在A中,运算结果要影响PSW(进位标志、奇偶和溢出标志等)。3,逻辑操作和循环移位指令:操作数之间的逻辑加、逻辑与、取反和异或等操作。多数情况下一个操作数在A中,

5、结果也存于A。移位指令分为左移、右移和带进位和不带进位几种情况。与算术类指令相比逻辑类指令基本不影响PSW的内容。,4,控制转移类指令:条件转移、无条件转移,调用和返回。通过修改程序指针PC的内容,使CPU转到另一处执行,从而改变程序的流向。5,位操作指令:位传送、位置位、位运算和位控制转移等操作。按位操作而不是按字节的操作。位控转移的判断不是检测某一个字节而是对某一个位进行检测并决定是否进行程序转移。这类指令基本不影响PSW的内容。,返回,2.2 寻址方式,在指令的操作数位置上,用于表征、寻找操作数的方式定义为“寻址方式”。正确的理解、掌握寻址方式,是学习、使用指令的关键。在MCS-51单片

6、机中,共使用了七种寻址方式。它们分别是:1,寄存器寻址 5,变址寻址;2,直接寻址 6,相对寻址;3,立即数寻址 7,位寻址。4,寄存器间接寻址,继续,2.2.1寄存器寻址,当所需要的操作数在内部某一个寄存器Rn中时,将此寄存器名Rn直接写在指令的操作数的位置上。MOV A,R7;将寄存器R7中的内容送累加器A中。MOV 20H,R0;将寄存器R0中的数据送内存20H单元 INC R1;将寄存器R1中的内容加一 ADD A,R3;A的内容与寄存器R3的内容相加送A 寄存器寻址方式的指令大多是单字节指令。指令本身并不带有操数,而是含有存放操作数的寄存器的3位代码。以MOV A,Rn为例,使用R7

7、寄存器,所以rrr=111,既指令的机器码为:0EFH,1 1 1 0 1 r r r,操作码,寄存器代码,返回,E8HEFH,MOV A,Rn,2.2.2 直接寻址,指令本身含有操作数的8位或16位地址。既指令直接给出了操作数的地址。MOV A,30H;将RAM30H单元内容送累加器 这里30H是操作数在RAM中的地址。很明显,直接寻址的指令长度是两个或三个字节。,n,n+1,30H,累加器A,直接寻址示意图,使用直接寻址应注意的三个问题:,1,指令助记符中direct是用16进制数表示的操作数地址。当地址恰好在SFR区域时,指令也可以用寄存器名来表示。MOV A,80H 可以写成 MOV

8、A,P0 后者用SFR中寄存器的名字取代它的物理地址80H。很明显,后者更容易阅读和交流,所以我们提倡使用SFR中寄存器名称来代替直接地址。MOV A,SBUF;串口数据缓冲器数据送A MOV IE,#00H;初始化中断允许寄存器 MOV TH1,#0FEH;为定时器1赋初值 尽管使用SFR的寄存器名称来取代直接地址,可以带来程序的可读性,但是在汇编时,仍要将寄存器名字转换为直接地址。,2,当直接地址时在工作寄存器区中时,可以使用两种寻址方式来访问。MOV A,00H;将RAM中00H单元数据送累加器A MOV A,R0;将工作寄存器R0的内容送累加器A 这里使用了不同的寻址方式,其指令的结构

9、也不相同。前者是:11100101(0E5H)、00000000(00H)双字节。后者的机器码是:11101000(0E8H)单字节;在物理结构上,R0与RAM的00H单元恰好是同一单元,所以不同的指令而执行结果是一样的。类似的还有累加器A:INC A 寄存器寻址方式(单字节);INC ACC 直接寻址方式(双字节);INC 0E0H 直接寻址方式(双字节)。,3,在指令系统中:字节地址与位地址是完全不同的概念。前者用direct表示,而后者用bit 表示,但在指令中都是用16进制表示的数。MOV A,20H;将RAM的20H单元内容送A MOV C,20H;将位寻址区中的位地址为20H位内容

10、送 PSW 中的Cy中。,片内 RAM(20H-2FH)中的位寻址区结构图,2FH,20H,字节地址,返回,24H,位地址,返回前一次,2.2.3立即寻址,指令本身直接含有所需要的8位或16位的操作数。将此数称为“立即数”(使用#标明)。MOV A,#30H;将(8位)立即数送累加器A MOV DPTR,#2000H;16位立即数送DPTR积存器【注意】:MOV A,#30H MOV A,30H 两者的区别。立即数寻址的指令长度为2或3个字节。,n,n+1,ROM,累加器A,MOV A,#30H 指令执行流程,ROM,DPTR,MOV DPTR,#2000H指令的存储和执行,返回,2.2.4

11、寄存器间接寻址,指令中含有保存操作数地址的寄存器Ri。MOV A,Ri(i=0、1)CPU首先根据指令中寄存器名Ri找到操作数地址,然后再从该地址中找到操作数 x。MOV R0,#30H;立即数送R0寄存器 MOV A,R0;从RAM的H单元取数送累加器A【注意】MOV A,R0 和 MOV A,R0 指令的区别。,30H,R0,00H,累加器A,1,2,3,使用寄存器间址指令时应注意的三个问题:,1,间址寄存器Ri只能使用R0、R1寄存器(i=0、1)。2,间址方式不仅用于片内RAM,同样也适用于片外RAM。对于片内RAM使用Ri寄存器,寻址范围为00HFFH。对于片外RAM,可以使用Ri,

12、也可以使用DPTR做间址寄存器。两者区别在于后者寻址范围为0000HFFFFH,两者都可以RAM和ROM。3,间址方式的指令不能访问SFR中的单元。如下面的程序是错误的:MOV R1,#80H MOV A,R1(因为80H为SFR的物理地址),MCS-51 片内、片外 数据存储器示意图,特殊功能寄存器SFR,通用数据存储器,80H7FH,00H,FFH,片内数据存储器 片外数据存储器256B个字节 64KB个字节,片外数据存储器64KB,0000H,FFFFH,注意:1,访问片内RAM20H存储单元;MOV A,20H2,访问片外RAM存储单元;MOV R0,#20HMOVX A,R03,尽管

13、片内与片外的RAM单元 的00H-FFH地址相重叠但由于指令的不同不会发生地址混乱。,返回,2.2.5 变址寻址,指令使用DPTR或PC中的内容作为基地址,再与累加器A的内容相加,其和作为操作数地址。MOVX A,A+PC;PC内容与A的内容相加得操作数地址 并将此操作数送A MOVX A,A+DPTR;DPTR内容与A的内容相加得操作数 地址并将此操作数送A使用变址指令时,要事先分别为A、DPTR赋值,以便获得操作数得地址。,变址指令只适用于对ROM存储器得访问,如查表等。【举例】:已知ROM中0302H 单元有一个数x,现要把它送到累加器A中,试编程。MOV DPTR,#0300H;立即数

14、送DPTR MOV A,#02H;立即数送累加器A MOVC A,A+DPTR;从ROM的00302单元取数送A,变址寻址示意图,02H,0300H,ALU,0302H,累加器A,DPTR,0300H+02H0302H,MOVC A,A+DPTR,返回,2.2.6 相对寻址,转移指令中使用的一种寻址方式。MCS-51单片机的指令系统中,有两类转移指令:相对转移(2个或3个字节)绝对转移(3个字节)。在绝对转移指令中,指令直接给出转移的目标地址(2字节地址),执行时将目标地址直接送给PC,从而控制程序转移;而相对转移指令在执行中是将PC值与指令中的8位偏移量进行相加,形成指令要转移的目标地址。SJMP rel由指令中有一个8位偏移量 rel 为带符号位的补码,所以控制程序转移的范围为+127-128。,54H,2002H,ALU,2056H,累加器A,PC,2002H+54H2056H,操作码,偏移量,例如:SJMP 54H;(80H、54H),2000H,2002H,(LOOP1),相对寻址使用中应注意的问题,与绝对寻址相比,相对寻址具有很好的“浮动性”,因此是编程人员普遍使用的一种寻址方式。使用时,要注意3点:1,CPU进行地址计算时,PC取值是执行本指令后的地址值。以上面的例子说明:指令本身的首地址是2000H,执行完后变为2002H(既下一条指令的首地址)。如果使用三字节的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1