单片机-指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机-指令系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 指令系统 课件
- 资源描述:
-
1、 2022-11-26标号:标号:操作码助记符操作码助记符 第一操作数第一操作数,第二操作数,第二操作数;注释;注释2022-11-267 7种寻址方式,种寻址方式,111111条指令条指令运算速度运算速度单周期指令:单周期指令:6464条条双周期指令:双周期指令:4545条条四周期指令:四周期指令:2 2 条条功能功能数据传送类:数据传送类:2929条条算术运算类:算术运算类:2424条条逻辑运算类:逻辑运算类:2424条条控制转移类:控制转移类:1717条条位操作类:位操作类:1717条条2022-11-262022-11-26 2022-11-262022-11-262022-11-26
2、 操作数就包含在指令代码中,在操作操作数就包含在指令代码中,在操作码之后,称为立即数,用码之后,称为立即数,用“”表示。表示。如:如:MOV P1,MOV P1,#80H#80H MOV R7,MOV R7,#0F5H#0F5H MOV DPTR MOV DPTR,#1245H#1245H操作数存在程序存储器中2022-11-26 直接使用数所在单元的直接使用数所在单元的地址地址找到了操作数,找到了操作数,所以称这种方法为所以称这种方法为直接寻址直接寻址。如:如:MOV AMOV A,00H00H MOV A MOV A,P1P12022-11-26对选定的工作寄存器对选定的工作寄存器R0R0
3、R7R7、累加器、累加器A A、通用寄存器、通用寄存器B B、地址寄存器地址寄存器DPTRDPTR中的数进行操作。中的数进行操作。例:例:MOV AMOV A,R0R0;将将R0R0工作寄存器中的数据送到累加器工作寄存器中的数据送到累加器A A中中2022-11-26例如例如:“:“一本一本书书放在放在甲甲抽屉中,上了锁;其开锁的抽屉中,上了锁;其开锁的钥匙放在钥匙放在乙乙抽屉中,抽屉中,乙乙抽屉也上了锁。问如何才能取抽屉也上了锁。问如何才能取到哪本到哪本书书?”这就是一个这就是一个间接寻址间接寻址的问题,要经过两次寻址才能找的问题,要经过两次寻址才能找到哪本到哪本书书。而寄存器间接寻址也是同
4、样。而寄存器间接寻址也是同样。指令中寄存器的内容作为操作数存放的地址,间接寻指令中寄存器的内容作为操作数存放的地址,间接寻址寄存器前用址寄存器前用“”表示前缀。表示前缀。2022-11-26;书书放在放在甲甲抽屉中抽屉中;甲甲抽屉的钥匙放在抽屉的钥匙放在乙乙抽屉中抽屉中;取取书书,A中中 20HMOV 30H,#20HMOV R0,#30HMOV A,R0 2022-11-26操作数在程序存储器中2022-11-26如果如果R0中的值为中的值为2,则最终地址为则最终地址为100H+2为为102H,到到102H单元中找到单元中找到的是的是4。2022-11-26 2022-11-26 PCPC中
5、的中的当前当前内容称为内容称为基地址基地址(本指令后的字(本指令后的字节地址),本指令的节地址),本指令的机器码机器码第二字节给出的第二字节给出的数据称为数据称为偏移量(补码表示)偏移量(补码表示)。常用于跳转。常用于跳转指令。指令。PC(基地址)rel偏移量新的PC2022-11-26如:SJMP 08HPC+02H+08H 本指令后的PC如此说:rel偏移量应为08H2022-11-26SJMP 08H2022-11-26SJMP 08H80 F680 F612+F6082022-11-26SJMP 08H2022-11-26 对片内对片内RAMRAM的的位寻址区位寻址区和某些可和某些可位
6、寻址位寻址的特殊的特殊功能寄存器进行位操作时的寻址方式。功能寄存器进行位操作时的寻址方式。如如:SETB 80H;:SETB 80H;将将P0.0P0.0位置位置1 1 CLR C CLR C ;CyCy位清位清0 02022-11-262022-11-26片外片外程序程序存储器存储器ROMEPROM特殊功能特殊功能寄存器寄存器SFR片内片内RAM128字节字节片外片外数据数据存储器存储器RAMMOVCMOVXMOV PUSHPOPXCHXCHD2022-11-261 1 以累加器为目的操作数的指令以累加器为目的操作数的指令(4 4条)条)MOV AMOV A,RnRn ;RnARnAMOV
7、AMOV A,directdirect;(direct)A(direct)AMOV AMOV A,RiRi ;(R Ri i)A)AMOV AMOV A,#datadata;dataAdataA 将将源操作数指定内容源操作数指定内容送到送到A A中。中。2 2 以寄存器以寄存器RnRn为目的操作数的指令为目的操作数的指令 (3 3条)条)MOV MOV RnRn,A A MOV MOV RnRn,directdirect MOV MOV RnRn,#datadata 这组指令功能是把这组指令功能是把源操作数指定源操作数指定的内容送入当前工作寄存器,的内容送入当前工作寄存器,源操作数不变。源操作
8、数不变。2022-11-263 3 以直接地址为目的操作数的指令以直接地址为目的操作数的指令(5 5条)条)MOV directMOV direct,A AMOV directMOV direct,RnRnMOV direct1MOV direct1,direct2direct2MOV directMOV direct,RiRiMOV directMOV direct,#datadata 这组指令功能是把这组指令功能是把源操作数指定源操作数指定的内容送入由直接的内容送入由直接地址指出的片内存储单元。地址指出的片内存储单元。例:例:MOV 20H,AMOV 20H,R1MOV 20H,30HMO
9、V 20H,R1MOV 0A0H,#34HMOV P2,#34H2022-11-264 以间接地址为目的操作数的指令(3条)MOV MOV RiRi,A A ;A(Ri i)MOV MOV RiRi,directdirect;(direct)(Ri i)MOV MOV RiRi,#data#data;data(Ri i)功能:把源操作数指定的内容送入以功能:把源操作数指定的内容送入以R0R0或或R1R1为地址为地址 指针的片内存储单元中。指针的片内存储单元中。例:例:MOV R0MOV R0,A AMOV R1MOV R1,20H20HMOV R0MOV R0,#34H#34H2022-11-
10、26注意:注意:MOV Rn,Rn MOV Ri,Ri MOV Rn,Ri MOV#data,A 等等等指令是非法指令。等指令是非法指令。哇!好容易出错啊!2022-11-262022-11-265 5 十六位数的传递指令十六位数的传递指令(1条)MOV DPTRMOV DPTR,#data16data1680518051是一种是一种8 8位机,这是唯一的一条位机,这是唯一的一条1616位位立即数传递指立即数传递指令。功能:将一个令。功能:将一个1616位的立即数送入位的立即数送入DPTRDPTR中去。其中中去。其中高高8 8位送入位送入DPHDPH,低,低8 8位送入位送入DPLDPL。例:
11、例:MOV DPTRMOV DPTR,#1234H#1234H执行完了之后执行完了之后DPHDPH中的值为中的值为12H12H,DPLDPL中的值为中的值为34H34H。如果我们分别向如果我们分别向DPHDPH,DPLDPL送数,则结果也一样。送数,则结果也一样。如下面两条指令:如下面两条指令:MOV DPHMOV DPH,#35H#35H MOV DPL MOV DPL,#12H#12H。则就相当于执行了则就相当于执行了 MOV DPTRMOV DPTR,#3512H#3512H。2022-11-26A 外部数据外部数据存储器存储器程序程序存储器存储器 Ri,A DPTR,A A,Ri A,
12、DPTRMOVXMOVCA,A+PCA,A+DPTR外部存储器和外部存储器和A A累加器之间的传送累加器之间的传送MOVXMOVC2022-11-266 6 累加器累加器A A与片外与片外RAMRAM之间的数据传递类指令之间的数据传递类指令(4(4条条)MOVX A,Ri MOVX Ri,A MOVX A,DPTR MOVX DPTR,A说明:2022-11-26片外数据存储器不能直接寻址。下列为片外数据存储器不能直接寻址。下列为非法非法指令:指令:MOVX A,2000H MOVX 2100H,2000H 2022-11-267 读读程序存储器指令程序存储器指令(2条)条)2022-11-2
13、6 查表范围为查表范围为 64KB 程序存储器任意空间。程序存储器任意空间。2022-11-26如果如果R0中的值为中的值为2,则最终地址为则最终地址为100H+2为为102H,到到102H单元中找到单元中找到的是的是4。2022-11-268 堆栈操作堆栈操作(2 2条)条)2022-11-262022-11-269 9 交换指令交换指令(5 5条)条)XCH AXCH A,RnRn ;ARnXCH AXCH A,directdirect ;A(direct)XCH AXCH A,RiRi ;A(Ri)XCHD AXCHD A,RiRi ;A.3A.0(Ri).3(Ri).0SWAP ASW
14、AP A ;A.3A.0A.7A.4例:例:已知已知A A中的内容为中的内容为34H34H,R0R0指向的单元的内容为指向的单元的内容为56H56HMOV R6MOV R6,#29H#29HXCH AXCH A,R6R6SWAP ASWAP AXCH AXCH A,R6R6 XCHD AXCHD A,R0R0;R6=29H;A=29H,R6=34H;A=92H;A=34H,R6=92H;A=36H,(R0)=54H2022-11-26(40H)=H 50H=H A=H (41H)=H 51H=H R0=H 课堂练习1.设:内部RAM中,(40H)=50H,(41H)=60H,(50H)=30H
15、,(51H)=70H,执行下列片段后:a.MOV R0,40Hb.MOV A,R0c.INC R0d.MOV R0,Ab.MOV R0,#40H MOV A,R0 INC R0 MOV A,R0;R0=50H;R0=50H;A=30H;A=30H;R0=51H;R0=51H;(51H)=30H;(51H)=30H;R0=40H;R0=40H;A=50H;A=50H;(40)=51H;(40)=51H;A=51H;A=51H2022-11-262022-11-262022-11-26例:例:MOV AMOV A,#0AEH#0AEH ;-82D;-82D ADD A ADD A,#81H#81H
16、 ;-127D;-127D则执行完本条指令后,则执行完本条指令后,A A中的值为中的值为2FH;2FH;C=1C=1,AC=0AC=0,OV=1OV=1,P=1P=1。对无符号数:结果为对无符号数:结果为1 12FH;2FH;带符号数运算:带符号数运算:OV=1OV=1,有错,有错。2022-11-26ADDC AADDC A,RnRn;A ARnRnCYCYAAADDC AADDC A,directdirect;A A(direct)(direct)CYACYAADDC AADDC A,RiRi;A A(RiRi)CYACYAADDC AADDC A,#datadata;A Adatadat
17、aCYACYA用途:用途:将将A A中的值和其后面的值以及进位位中的值和其后面的值以及进位位C C中的中的值相加,最终结果存在值相加,最终结果存在A A,常用于多字节数运算中。,常用于多字节数运算中。2022-11-26 说明:说明:由于由于51单片机是一种单片机是一种8位机,所以只能做位机,所以只能做8位的数学运算,但位的数学运算,但8位运算的范围只有位运算的范围只有0255,这在实际工作中是不够的,因此就要进行扩展,这在实际工作中是不够的,因此就要进行扩展,一般是将一般是将2个个8位位(两字节两字节)的数学运算合起来,成的数学运算合起来,成为一个为一个16位的运算,这样,可以表达的数的范位
18、的运算,这样,可以表达的数的范围就可以达到围就可以达到065535。2022-11-26例:先做先做67H+A0H=107H67H+A0H=107H,而,而1 107H07H显然超过了显然超过了0FF0FFH H,因此最终保存在因此最终保存在A A中的是中的是07H07H,而,而1 1则到了则到了PSWPSW中的中的CYCY位了。换言之,位了。换言之,CYCY就相当于是就相当于是100H100H。然后再做然后再做10H+30H+10H+30H+CYCY,结果是,结果是41H41H,所以,所以最终的结果是最终的结果是4107H4107H。1067H+30A0H1067H+30A0H0001 00
展开阅读全文