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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

第四章汇编指令系统.ppt

1、1,2022/10/21,第四章 80C51的指令系统,2022/10/21,2,4.1 指令系统简介,7种寻址方式111条指令,2022/10/21,3,常用符号,Rn:工作寄存器中的寄存器R0、R1R7之一,Ri:工作寄存器中的寄存器R0或R1,#data:8位立即数,#data16:16位立即数,direct:片内RAM或SFR的地址(8位),:间接寻址寄存器,Bit:片内RAM或SFR的位地址,addr11:11位目的地址,addr16:16位目的地址,2022/10/21,4,rel:补码形式的8位地址偏移量。偏移范围为-128127/:位操作指令中,该位求反后参与操作,不影响该位X

2、:片内RAM的直接地址或寄存器(X):相应地址单元中的内容:箭头左边的内容送入箭头右边的单元内,2022/10/21,5,4.2 寻址方式,1 立即寻址 Immediate Addressing,操作数就包含在指令代码中,在操作码之后,称为立即数,用“”表示。如:MOV P1,#80H MOV R7,#0F5H MOV DPTR,#1245H,操作数存在程序存储器中,2022/10/21,6,2 直接寻址 Direct Addressing 直接使用操作数所在单元的地址找到了操作数,所以称这种方法为直接寻址。操作数在SFR、内部RAM、位地址空间。如:MOV A,00H MOV C,60H M

3、OV A,0F0H,2022/10/21,7,3 寄存器寻址 Register Addressing,对选定的工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR中的数进行操作。例:MOV A,R0 功能:将R0中数据送累加器A中。,问题:工作寄存器就是内存单元的一部分,如果选择工作寄存器组0,实际R0就是RAM的00H单元,那么“MOV A,00H”和“MOV A,R0”不就没什么区别了吗?,的确,这两条指令都是将00H单元中的内容送A,但执行的过程不同,执行第一条指令需2个机器周期,而第二条则只需1个机器周期,第一条指令变成最终目标码要两个字节(E5H 00H),而第二条则只一个

4、字节(E8H)就可以。,2022/10/21,8,4.2.4 寄存器间接寻址 Register Indirect Addressing,把地址放在另外一个寄存器中,根据这个寄存器中的数值决定该到哪个单元中取数据。R0,R1-8位地址,片内低128字节或片外DPTR-16位,片外64KB MCS-51如:MOV A,R0MOVX A,R0MOVX A,DPTR,操作数在片内RAM中,操作数在片外RAM中,操作数在片外RAM中,2022/10/21,9,以DPTR或PC为基址寄存器,累加器A为变址寄存器。把两者内容相加,结果作为操作数的地址。常用于查表操作。MCS-51 MOVC A,A+DPTR

5、;(A+DPTR)A MOVC A,A+PC;PC+1 PC,(A+PC)A,4.2.5 变址寻址(基址+变址),Base-Register-plus-Index-Register-Indirect Addressing,操作数在程序存储器中,2022/10/21,10,E0,A,如:MOVC A,A+DPTR设DPTR=2000H,A=E0H,20E0H,47,指令代码,2022/10/21,11,4.2.6 相对寻址,将PC中的当前内容与指令第二字节给出的数相加,结 果作为跳转指令的转移地址(转移目的地址)。PC中的当前内容称为基地址(本指令后的字节地址)指令第二字节给出的数据称为偏移量,

6、1字节带符号数.常用于跳转指令。如:JC 23H 若C=0,不跳转;C=1,跳转.,Relative Addressing,改变PC,2022/10/21,12,如:JC 23,1025H,23H,1002H,指令代码,当前PC,2022/10/21,13,对片内RAM的位寻址区和某些可位寻址的特殊功能寄存器进行位操作时的寻址方式。如:SETB 3DH;将27H.5位置1 CLR C;Cy位清0,4.2.7 位寻址 Bit Addressing,操作数在片内RAM位地址区或SFR某些位中,2022/10/21,14,小结:寻址方式涉及的存储器空间,2022/10/21,15,4.3.1 数据传

7、送类指令(29条)Data Transfer Instruction,MCS-51 助记符:MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH、POP 源操作数寻址方式(5种):立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址。目的操作数寻址方式(3种):直接寻址、寄存器寻址、寄存器间接寻址注意:除了目的操作数为ACC的指令影响奇偶标志P外,一般不影响标志位。,2022/10/21,16,4.3.1 数据传送类指令,1、累加器A为目的操作数的指令MOV A,data;dataA MOV A,direct;(direct)A MOV A,Rn;RnAMOV A,Ri;(Ri

8、)A,内部RAM数据传送指令,2022/10/21,17,内部RAM数据传送指令,2、以寄存器Rn为目的操作数的指令MOV Rn,#data;dataRnMOV Rn,direct;(direct)RnMOV Rn,A;ARn,例1 A5BH,R110HR220H,R330H,(30H)4FH执行指令:MOV R1,A;AR1MOV R2,30H;(30H)R2MOV R3,#83H;83HR3执行后:R15BH,R24FH,R383H。,2022/10/21,18,3、十六位数的传递指令(1条),MOV DPTR,#data16 8051是一种8位机,这是唯一的一条16位立即数传递指令。功能

9、:将一个16位的立即数送入DPTR中去。其中高8位送入DPH,低8位送入DPL。例:MOV DPTR,#1234H 执行完了之后DPH中的值为12H,DPL中的值为34H。如果我们分别向DPH,DPL送数,则结果也一样。如下面两条指令:MOV DPH,#35H MOV DPL,#12H。则就相当于执行了 MOV DPTR,#3512H。,2022/10/21,19,累加器A与片外RAM之间的数据传递类指令(4条),MOVX A,Ri MOVX Ri,A MOVX A,DPTR MOVX DPTR,A说明:1.在51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必需

10、要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。在此我们可以看出内外部RAM的区别了,内部RAM间可以直接进行数据的传递,而外部则不行。,2022/10/21,20,2.要读或写外部的RAM,当然也必须要知道RAM的地址,在后两条指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是8位的寄存器,所以只提供低8位地址。高8位地址由P2口来提供。3.使用时应先将要读或写的地址送入DPTR或Ri中,然后再用读写命令。例:将外部RAM中100H单元中的内容送入外部RAM中200H单元中。MOV DPTR,#0100HMOVX A,DPTRMOV DPTR,#

11、0200HMOVX DPTR,A,2022/10/21,21,读程序存储器指令(2条),MOVC A,A+DPTR MOVC A,A+PC 例:有一个数在R0中,要求用查表的方法确定它的平 方值(此数的取值范围是0-5)MOV DPTR,#100H MOV A,R0 MOVC A,A+DPTR.ORG 0100HDB 0,1,4,9,16,25,如果R0中的值为2,则最终地址为100H+2为102H,到102H单元中找到的是4。,本组指令是将ROM中的数送入A中。本组指令也被称为查表指令,常用此指令来查一个已做好在ROM中的表格说明:查找到的结果被放在A中,因此,本条指令执行前后,A中的值不一

12、定相同。,2022/10/21,22,堆栈操作(2条),PUSH direct;SPSP+1,(SP)(direct)POP direct;(direct)(SP),SPSP-1 第一条为压入指令,就是将direct中的内容送 入堆栈中;第二条为弹出指令,就是将堆栈中的内容送回 到direct中。例:MOV SP,#5FH MOV A,#100 MOV B,#20 PUSH ACC PUSH B,则执行第一条PUSH ACC指令是这样的:将SP中的值加1,即变为60H,然后将A中的值送到60H单元中,因此执行完本条指令后,内存60H单元的值就是100,同样,执行PUSH B时,是将SP+1,即

13、变为61H,然后将B中的值送入到61H单元中,即执行完本条指令后,61H单元中的值变为20。,2022/10/21,23,1.给出每条指令执行后的结果,MOV 23H,#30HMOV 12H,#34HMOV R0,#23HMOV R7,12HMOV R1,#12HMOV A,R0MOV 34H,R1MOV 45H,34HMOV DPTR,#6712HMOV 12H,DPHMOV R0,DPLMOV A,R0,;(23H)=30H;(12H)=34H;R0=23H,;R7=34H;R1=12H;A=30H,;(34H)=34H;(45H)=34H;DPTR=6712H,;(12H)=67H;R0

14、=12H;A=67H,内部RAM,2022/10/21,24,4.3.2 算术运算类指令(24条)Arithmetic Operations,主要对8位无符号数;也可用于带符号数运算。包括:加、减、乘、除、加1、减1运算指令。影响PSW有关位。,2022/10/21,25,4.3.2.1 加法指令,ADD A,#data;AdataAADD A,direct;A(direct)AADD A,Rn;ARnAADD A,Ri;A(Ri)A 用途:将A中的值与源操作数所指内容相加,最终 结果存在A中。,1.不带进位位的加法指令(4条),2022/10/21,26,2.带进位位的加法指令(4条),AD

15、DC A,Rn;ARnCYAADDC A,direct;A(direct)CYAADDC A,Ri;A(Ri)CYAADDC A,#data;AdataCYA用途:将A中的值和其后面的值以及进位位C中的值相加,最终结果存在A,常用于多字节数运算中。说明:由于51单片机是一种8位机,所以只能做8位的数学运算,但8位运算的范围只有0255,这在实际工作中是不够的,因此就要进行扩展,一般是将2个8位(两字节)的数学运算合起来,成为一个16位的运算,这样,可以表达的数的范围就可以达到065535。,2022/10/21,27,例:,先做67H+A0H=107H,而107H显然超过了0FFH,因此最终保

16、存在A中的是07H,而1则到了PSW中的CY位了。换言之,CY就相当于是100H。然后再做10H+30H+CY,结果是41H,所以最终的结果是4107H。,1067H+30A0H,0001 0000 0110 0111,0011 0000 1010 0000,0100 0001 0000 0111,1067H,30A0H,4107H,2022/10/21,28,设:1067H存在R1R0中,30A0H存在R3R2中,计算R1R0+R3R2,结果存在R5R4中。,MOV A,R0ADD A,R2;R0+R2A和CYMOV R4,AMOV A,R1ADDC A,R3;R1+R3+CYA和CYMOV R5,A,2022/10/21,29,又例:,先做67H+20H=87H,没有超过0FFH,因此最终保存在A中的是87H,而PSW中的CY=0。然后再做10H+30H+CY,结果是40H,所以最终的结果是4087H。,1067H+3020H,2022/10/21,30,DA A在进行BCD码加法运算时,跟在ADD和ADDC指令之后,用于对累加器A中刚进行的两个BCD码的加法的结果进行十进制调整。

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

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