第MCS5单片机指令系统

上传人:人*** 文档编号:567616373 上传时间:2024-07-21 格式:PPT 页数:79 大小:484.50KB
返回 下载 相关 举报
第MCS5单片机指令系统_第1页
第1页 / 共79页
第MCS5单片机指令系统_第2页
第2页 / 共79页
第MCS5单片机指令系统_第3页
第3页 / 共79页
第MCS5单片机指令系统_第4页
第4页 / 共79页
第MCS5单片机指令系统_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《第MCS5单片机指令系统》由会员分享,可在线阅读,更多相关《第MCS5单片机指令系统(79页珍藏版)》请在金锄头文库上搜索。

1、第 3 章 MCS - 51单片机指令系统 第第3章章MCS-51单片机指令系统单片机指令系统3.1 单片机指令系统概述3.2 寻址方式3.3 分类指令著夹粉但凳党襄店雹赐用嫡捅显滋舆烙淮匹养散缸褪购厅翰伟腺戌息沿递第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 MCS-51单片机指令系统的特点:(1)指令执行快。(2)指令短,约有一半的指令为单字节指令。(3)用一条指令即可实现2个一字节的相乘或相除。(4)具有丰富的位操作指令。 (5)可直接用传送指令实现端口的输入输出操作。3.1 单片机指令系统概述梁铀誊峻裁饰糕进窃智爬税激一伤干把徊母果摇河

2、揍赃降娠苔极卿颠围举第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 在MCS-51指令中,一般指令主要由操作码、操作数组成。指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地址。(3)指定操作结果存放的地址。指令格式指令格式兜裸喇懒件叛箔敦党智涯铁副请粗缝蔬块撼共谢佩碾彼旁胖代祥难姆跑瑰第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 1.单字节指令单字节指令 单字节指令格式由8位二进制编码表示, 例如: CLR

3、 AE4H 2.双字节指令双字节指令 双字节指令格式由两个字节组成, 操作码和操作数, 例如: MOV A, 10H74H 10H 3.三字节指令三字节指令 三字节指令格式中, 第一个字节为操作码, 后两个字节为操作数, 例如: MOV 40H, 30H75H 40H 30H 仆胃瞒埂恫洋对鸭昭癣光怨吾漓猴搐幼备漱嘘凸爸荐粮韵尘瞳礼蒲拈纳屠第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 一条汇编语言指令中最多包含 4 个区段, 如下所示: 标号: 操作码 操作数 ;注释 4 个区段之间要用分隔符分开: 标号与操作码之间用“: ”隔开, 操作码与操

4、作数之间用空格隔开, 操作数与注释之间用“;”隔开, 如果操作数有两个以上, 则在操作数之间要用逗号“,”隔开 (乘法指令和除法指令除外 )。 踌子淖腮帅狐肆震拱雨完魂侗睡氓壕尼醚泽屠耶柔咽兜妻怕披羌拇苛犹凛第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 指令描述符号介绍Rn当前选中的寄存器区中的8个工作寄存器R0R7(n=07)。Ri当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。direct8位的内部数据存储器单元中的地址。#data包含在指令中的8位常数。#data16包含在指令中的16位常数。addr1616位目的地址。ad

5、dr1111位目的地址。湘移推进珠仍引燎诞棺避算盂烘恕杀搽贞蛰摊纲攘椒匝唱雌哭税卑沫蒂胡第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 rel8位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作16位地址寄存器。bit内部RAM或专用寄存器中的直接寻址位。A累加器。B专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。瞪忙鞭梦俩旧傲据髓首臃掀抽丸粗百具各万律邵纸缓碘畜撩锗蝉扫趾凿掘第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 间址寄存器或基址寄存器的前缀,如Ri,D

6、PTR。/ 位操作数的前缀,表示对该位操作数取反,如/bit。片内RAM的直接地址或寄存器。()由寻址的单元中的内容。 箭头左边的内容被箭头右边的内容所代替。查沉凳语坏止幌搭嗓址缔枢冉贿猿啮憨寡缝泼字冲屉僧汁婶维腿雌惋抖元第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 3.2寻址方式寻址方式 所谓寻址方式, 就是寻找操作数地址的方式, 在用汇编语言编程时, 数据的存放、传送、 运算都要通过指令来完成。 编程者必须自始至终都要十分清楚操作数的位置, 以及如何将它们传送到适当的寄存器去参与运算。每一种计算机都具有多种寻址方式。寻址方式的多少是反映指令

7、系统优劣的主要指标之一。 喧漫胰月劣再囤真巴秋啮握巢颁媚虑帖郁装警捅浴猖吊哼角屹掉孵赃来应第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 在 MCS -51单片机指令系统中, 有以下 7种寻址方式: (1) 立即寻址; (2) 直接寻址; (3) 寄存器寻址; (4) 寄存器间接寻址; (5) 基址寄存器加变址寄存器间接寻址; (6) 相对寻址; (7) 位寻址。 诚哟苔晤词蠢卒毛搏马堡弄瑶栓横鸵简灾橱烦砸簧碾由离冉挺宝蛛惧距粕第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 1.立即寻址立即寻址 立

8、即寻址方式是指操作数包含在指令字节中。 跟在指令操作码后面的数就是参加运算的数, 该操作数称为立即数。 立即数有一字节和二字节两种可能, 例如指令: MOV A, 3AH MOV DPTR, 0DFFFH 酥杯养爱展孕瞳扦澈宋成细疡冉扑逊烛网伍峭纤肯兑拣房瑟拽焦详积笺俏第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 2.直接寻址直接寻址 在指令中直接给出操作数的地址, 这种寻址方式就属于直接寻址方式。在这种方式中, 指令的操作数部分直接是操作数的地址。 在MCS -51 单片机指令系统中, 直接寻址方式中可以访问 3 种存储器空间: (1) 内部

9、数据存储器的低 128 个字节单元(00H7FH)。 (2) 特殊功能寄存器。 特殊功能寄存器只能用直接寻址方式进行访问。 (3) 位地址空间。 肋朋具豢说塑布辰砰炊绣乎盘迭仑胆阴参浊乱本篱裤赶塔猎敲梳垒决慕药第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 MOV A,52H ;把片内RAM字节地址52H单元的内容送累加器A中。MOV 52H,A ;把A的内容传送给片内RAM的52H单元中。MOV 50H,60H ;把片内RAM字节地址60H单元的内容送到50H单元中。 MOV IE,#40H ;把立即数40H送到中断允许寄存器IE。IE为专用功

10、能寄存器,其字节地址为0A8H。该指令等价于 MOV 0A8H,#40H。INC 60H ;将地址60H单元中的内容自加1。胎安黑深仑河器猪谁剃跑董卷侩插哥她班鲜勇庙辣页殉柳盯怒浓芋咽革午第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 3.寄存器寻址寄存器寻址 在该寻址方式中, 参加操作的数存放在寄存器里。寄存器包括8个工作寄存器R0R7, 累加器A, 寄存器B、数据指针DPTR和布尔处理器的位累加器C。MOV A,Rn ;A(Rn) 其中n为07之一, Rn是工作寄存器。MOV Rn,A ;Rn(A) MOV B,A ;B(A) 糙伟官棘甲沸纪

11、念恨晃顿眯鼓擦舱版驴涕榨憨示埂钒均从沈懊仗春振劈辨第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 4.寄存器间接寻址寄存器间接寻址 在这种寻址方式中, 寄存器的内容为操作数的地址。 寄存器间接寻址只能使用寄存器R0、R1 作为地址指针,寻址内部RAM区的数据; 当访问外部RAM时, 可使用R0、 R1及DPTR作为地址指针。寄存器间接寻址符号为“”, 例如: 剖炳午拥砍叙疚鸡碍赣辕泰扛蔬辞柒盒伶茨纺缮妙譬窜阵移托讶铁茄车袋第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 例如: MOV R0,#60H

12、 ;R060H MOV A, R0 ;A (R0) MOV A ,R1 ;A (R1) 例如:MOV DPTR,#3456H ;DPTR3456H MOVX A,DPTR ;A (DPTR)是把DPTR寄存器所指的那个外部数据存储器(RAM)的内容传送给A,假设(3456H)=99H,指令运行后(A)=99H。狙沿曰胺毫诲更函殖经瞥冈六霄仁缔策辛靖话增尾秧吟揉垄密繁唤尔毛身第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 5.基址寄存器加变址寄存器间接寻址基址寄存器加变址寄存器间接寻址 这种寻址方式用于访问程序存储器中的数据表格, 它以基址寄存器D

13、PTR或PC的内容为基本地址, 加上变址寄存器A的内容作为操作数的地址, 例如: MOVC A, DPTR+A JMP A+DPTR MOVC A, PC+A 色起弊折逐游术啪耽谭漂骤耍卑线簧叫匪暮敲斩刘攘晚粱卡抿牢鹅盯砰鸭第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 6.相对寻址相对寻址 在MCS -51 指令系统中设有转移指令, 分为直接转移和相对转移指令, 在相对转移指令中采用相对寻址方式。这种寻址方式是以PC的内容为基本地址, 加上指令中给定的偏移量作为转移地址。指令中给出的偏移量是一个 8 位带符号的常数, 可正可负, 其范围为128

14、+127。SJMP08H;PC转移指令地址转移指令地址+2+08H铺栋抬向懒祭胎独坏托怀仗斥笺醋寻蜡蒋纷绰醚石屁溪暑涂笨懊裴并惟物第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 7.位寻址位寻址 该种寻址方式中, 操作数是内部RAM单元中某一位的信息。 SETB TR0 ;TR01CLR 00H ;(00H)0MOV C,57H ;将57H位地址的内容传送到 位累加器C中 ANL C,5FH ;将5FH位状态与进位位C相与, 结果在C中 杠苏拂绣圆皋沥僳瞅鉴汁肚蜜拨晨熟基状到袜溢唇姥凸怯盂镶咬鹿苍溢勺第MCS-5单片机指令系统第MCS-5单片机指

15、令系统第 3 章 MCS - 51单片机指令系统 3.3指令系统指令系统3.3.1指令分类指令分类 MCS-51指令系统有42种助记符,代表了33种功能,指令助记符与各种可能的寻址方式相结合,共构成111条指令。按指令的功能,MCS-51指令系统可分为下列5类:(1)数据传送类指令(29条)(2)算术运算类指令(24条)(3)逻辑运算及移位类指令(24条)(4)位操作类指令(17条)(5)控制转移类指令(17条)沫赵烃点茨伴抨英猿焙严胆尔认末瞧晤缮刀哭耍高级宴夕持蔽注榜跨枯福第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 3.3.2 数据传送类指

16、令 数据传送类指令一般的操作是把源操作数传送到指令所指定的目标地址。指令执行后,源操作数保持不变,目的操作数为原操作数所替代 数据传送类指令用到的助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。 格式: MOV 目的操作数,源操作数 功能:目的操作数(源操作数中的数据) 源操作数可以是:A、Rn、direct、Ri、#data 目的操作数可以是:A、Rn、direct、Ri 娜鞠参藐弟驳彬作与抡楼白出误共鞋囱晓蹈脯暴冒绍必邯狮户堤离慨挖霹第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 1 以累加器为目的操作数的

17、内部数据传送指令 MOVA,Rn;A(Rn)MOVA,direct;A(direct)MOVA,Ri;A(Ri)MOVA,#data;Adata续逞楚休抢穆骑痔爷拳逆薛烤锹咬渴旁解乓暮唬铭崎宰样恢扒括触甸捞涎第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 2 数据传送到工作寄存器Rn的指令 MOVRn,A;Rn(A)MOVRn,direct;Rn(direct)MOVRn,#data;Rndata炸孝酶绽衫蚁贵内馈啮项镰垂窍挎秧裹巴拄池谤赃气训乓厩阵太舍臃噬睁第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指

18、令系统 3数据传送到内部RAM单元或特殊功能寄存器SFR的指令 MOVdirect,A;direct(A)MOVdirect,Rn;direct(Rn)MOVdirect1,direct2;direct(direct2)MOVdirect,Ri;direct(Ri)MOVdirect,#data;direct#dataMOVRi,A;(Ri()MOVRi,direct;(Ri)(direct)MOVRi,#data;(Ri)dataMOVDPTR,#data16;DPTRdata16氓汉遥恃曾择蚤浅滥阵可衣乎押嘴兆阿沸手狙茵芒烛阁淬谢忙纽孵包改抹第MCS-5单片机指令系统第MCS-5单片机指令

19、系统第 3 章 MCS - 51单片机指令系统 片内数据RAM及寄存器的数据传送指令MOV、PUSH和POP共18条。捉阴千硼笆坝震颗塌都稗躇矛艰婆枷角拜熬护伏亥猖蠢嫩桓付擦滚劳丸卉第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 4 累加器A与外部数据存储器之间的传送指令片外数据存储器数据传送指令MOVX共4条。 MOVXA,DPTR;A(DPTR)MOVXA,Ri;A(Ri)MOVXDPTR,A;(DPTR)AMOVXRi,A;(Ri) A馅般低意信穷煌西凋淌注竟掩兰演护胁意腑瓤放屋影陀惩妊砧遍硅乙仓野第MCS-5单片机指令系统第MCS-5单片

20、机指令系统第 3 章 MCS - 51单片机指令系统 5程序存储器内容送累加器MOVC A,A+PCMOVC A,A+DPTR 程序存储器查表指令MOVC共2条敌赣墟久虱触坤酉褒葫揣华距廓皂蝗粟栽献拈滚迁础粘宾妈睦纽躬樊胶埋第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 6堆栈操作堆栈操作所谓堆栈是在片内RAM中按“先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指针SP统一管理。堆栈的操作有如下两条专用指令: PUSH direct;SP(SP+1),(SP)(direct) POP direct;(direct)(SP),SP SP

21、-1PUSH是进栈(或称为压入操作)指令。POP是出栈(或称为弹出操作)指令。砚娟纯淌峦滩么卓偷猖疽月瞅坚磕曼龄骨石炽涪护闪疲达阔诽镁晓谈埃暴第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 7字节交换指令 数据交换主要是在内部RAM单元与累加器A之间进行,有整字节和半字节两种交换。(1)整字节交换指令XCHA,Rn;ARnXCHA,direct;A(direct)XCHA,Ri;A(Ri)戈住蜡鹤篙预停轧扶湾置御身靡间宠湿俩诱却沉良所衅廖眷限嘴预沮淑合第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统

22、XCHDA,Ri;A03(Ri)03SWAPA;A03A47(2)半字节交换指令颁烷肿俗得狭跪玩唤普至淆给冗骂瘫殖蚌褥惨殿诸石缠狐肘挛脆砧扭郑稻第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 售茎翼滴工蜡葵姬裔课摇滔怖逐海偏宿钉希乘淹氯颤箭镣痘奢吝泽盅鸦苟第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 【例】 将片内RAM 30H单元与40H单元中的内容互换。方法1(直接地址传送法): MOV31H,30H MOV30H,40H MOV40H,31H SJMP$方法2(间接地址传送法): MOVR0

23、,#40H MOVR1,#30H MOVA,R0 MOVB,R1 MOVR1,A MOVR0,B SJMP$瓢枯秋窜谎哨兆衡专仇郊住醋佛发趴锄托撇馅炬墓澳钥梧蓉嗜倒纺牛使粱第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 方法3(字节交换传送法): MOVA,30H XCH A,40H MOV30H,A SJMP$方法4(堆栈传送法): PUSH30H PUSH40H POP 30H POP 40H SJMP$捉琵谚奠煌纶襄版黍骋窥兽形讲书知欢秽样谩彭即找盟娟倦拂樱黍堵六缎第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS -

24、51单片机指令系统 3.3.3算术运算类指令算术运算类指令算术运算指令算术运算指令凑蔼千獭号嘿逛距芋嘎遍肠丢滤酣黑炮爬盾闸乌赫萌乓砍杀拘道蛮窒裙捅第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 算术运算指令算术运算指令摧耻罚母粘侨挠棋气钵俩海贸拥怂老舀榴紧铰似拱糟痒康锗膏停喀洱都莆第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 影响标志位的指令 溪派炽苦氢郡雪撮菌烟腻怀饺录兔概需快镀堰迅承汇方漳瘸芦芝辛翅憨盏第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系

25、统 影响标志位的指令谩辅叹赛当群呻暂汞韭巍浙欣阻籍犁俭盎毛溶屋不冕愧潦联拓挛残好柬数第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 一、一、加法指令加法指令1.普通加法指令普通加法指令 ADD A, Rn ADD A, direct ADD A, Ri ADD A, data 误卒宪冬棋谦蛰脯札倔司颁姥庚讯践专嫩剔轨豢泞卓粕划驴灵凰夜焦辣豢第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 例例写出以下一段程序各条指令执行的结果写出以下一段程序各条指令执行的结果MOVA,#0B3H;MOV20H,#10

26、H;MOVR0,#20H;ADDA,R0;ADDA,R0;ADDA,#10H;陆落虾火腮善偶廓炳狸鸦氓赶吊舱仍苟珠淖钒防殊抓篡买灭铀坎星慕的膝第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 例如: 120 和 100 之和为 220, 显然大于 127, 相加时 0 1 1 1 1 0 0 0 1200 1 1 0 0 1 0 0 1001 1 0 1 1 1 0 0 220+符号位(最高位)由 0 变 1, 两个正数相加结果变负, 实际上它是和数的最高位, 符号位移入了进位标志, 此时位 6 有进位而位 7 无进位, 置位溢出标志OV, 结果溢

27、出。 擂叼地拦沃敲牺抬株酸淆牡惜问见揩钡攘搞笺统企拂梭呕惠秘湃钓拨邀蛛第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 程序状态字程序状态字PSW D7D6D5D4D3D2D1D0CyACF0RS1RS0OV_PCy(Carry):进位进位AC(AuxiliaryCarry):辅助进位辅助进位F0(Flag):用户标志用户标志RS1、RS0:寄存器组选择控制位:寄存器组选择控制位OV(Overflow):溢出溢出P(Parity):奇偶标志奇偶标志拿荚量愉咖自伤毯膀序腊阅礁包维琴熟俗给哎虞阔战慷鄂菊椿陈六赋鉴止第MCS-5单片机指令系统第MCS-5

28、单片机指令系统第 3 章 MCS - 51单片机指令系统 同样, 120和100 相加, 结果应为220, 显然小于128, 相加时 1 0 0 0 1 0 0 0 -1201 0 0 1 1 1 0 0 -100+1 0 0 1 0 0 1 0 0 -220 符号位由1变为0, 两个负数相加结果变为正数, 这是因为符号位移入进位标志, 位 6 无进位而位 7 有进位, 置位溢出标志OV, 由此可判断结果溢出。 肺荚磕压谬肿累斌矿裕叔人什方煞议龟蒜钱冒沥缎甥耙颖墅谗邓殷页吩榷第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 2.带进位加法指令带进位

29、加法指令 ADDC A, Rn ADDC A, direct ADDC A, Ri ADDC A, data 这组指令的功能与普通加法指令类似, 唯一的不同之处是, 在执行加法时, 还要将上一次进位标志Cy的内容也一起加进去, 对于标志位的影响也与普通加法指令相同。 床杰樟桓跨溶偏秀粪镣砌叹史唁杭罪励刻让怯陨凭枷隅舶把串蚀拢走恼砖第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 例例有两个有两个16位数。低位数。低8位分别存于位分别存于20H和和30H之中。高八位之中。高八位分别存于分别存于21H和和31H中。求他们的和,和的低八位送中。求他们的和

30、,和的低八位送40H,高,高8位送位送41H。 MOVA,20HADDA,30H;低;低8位相加位相加MOV40HA;有和的低有和的低8位位MOVA,21HADDCA,31H;高;高8位相加位相加,带低八位相加的进位带低八位相加的进位MOV41H,A;存和的高;存和的高8位位僵犊睫撬蟹茄汝舶肯敛查孰诣诈搀绊炮觉与混氦陛荫皮玖辙召滓烂轮绦盔第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 3.增量指令增量指令 INC A INC Rn INC direct INC Ri INC DPTR 这组指令的功能是:将指令中所指出操作数的内容加1。 若原来的内

31、容为 0FFH, 则加 1 后将产生溢出, 使操作数的内容变成 00H, 但不影响任何标志。最后一条指令是对16 位的数据指针寄存器DPTR执行加 1 操作, 指令执行时, 先对低 8 位指针 DPL的内容加 1, 当产生溢出时就对高 8 位指针DPH加 1, 但不影响任何标志。 武杠塘愁臭飘狡庄僵湿惶魏翰渍眶绷廖刨还变巢炼蒲莹鳖饺泽薪柱疽鞠脸第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 4.十进制调整指令十进制调整指令 DA A 这条指令对累加器A参与的BCD码加法运算所获得的 8 位结果进行十进制调整, 使累加器A中的内容调整为二位压缩型

32、BCD码的数。使用时必须注意, 它只能跟在加法指令之后, 不能对减法指令的结果进行调整, 且其结果不影响溢出标志位。 执行该指令时, 判断 A中的低 4 位是否大于 9 和辅助进位标志 AC是否为“1”, 若两者有一个条件满足, 则低 4 位加 6 操作; 同样, A中的高 4 位大于 9 或进位标志 Cy为“1”两者有一个条件满足时, 高 4 位加 6 操作。例如: 有两个 BCD数 36 与 45 相加, 结果应为 BCD码 81, 程序如下: 叶损遗萤缠鲍庇惕荐普炮林朔世孕咀投玖校馆展军厌喝官柑蒸矢檄囤驮吩第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单

33、片机指令系统 MOV A, 36HADD A, 45HDA A 这段程序中, 第一条指令将立即数36H(BCD码36)送入累加器A; 第二条指令进行如下加法: 0 0 1 1 0 1 1 0 360 1 0 0 0 1 0 1 450 1 1 1 1 0 1 1 7B0 0 0 0 0 1 1 0 06+1 0 0 0 0 0 0 1 81得结果 7BH; 第三条指令对累加器 A进行十进制调整, 低 4 位(为 0BH)大于 9, 因此要加 6, 得调整的 BCD码 81。 扑卷堵占索群固烃址尘货绅片漆亿云愁榔继呼束希荒翱辣尚买亨醒工细力第MCS-5单片机指令系统第MCS-5单片机指令系统第

34、3 章 MCS - 51单片机指令系统 例:例:二个多字节无符号数相加二个多字节无符号数相加设有两个四位设有两个四位BCD码分别存在内部码分别存在内部RAM的的50H、51H和和60H、61H单元中,试编写程序,求两个单元中,试编写程序,求两个BCD码数之和,结果存入内部码数之和,结果存入内部40H、41H单元。单元。MOVR0,#50H;被加数首址;被加数首址MOVR1,#60H;加数首址;加数首址MOVA,R0;取被加数;取被加数ADDA,R1;与加数相加;与加数相加DAA;二十进制调整;二十进制调整MOV40H,A;存和;存和雹驰阁世奸蓖棘材脱现么奄僧暑骏饱蛰蓟狐鳞摸噶玻堕瞄送瓣祁吠爪革

35、蘸第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 二、二、减法指令减法指令1.带进位减法指令带进位减法指令 SUBB A, Rn SUBB A, direct SUBB A, Ri SUBB A, data 功能: 将累加器A的内容与第二操作数及进位标志相减, 结果送回到累加器A中。在执行减法过程中,如果位7(D7)有借位, 则进位标志Cy置“1”, 否则清“0”; 如果位 3(D3)有借位, 则辅助进位标志AC置“1”, 否则清“0”; 如位 6 有借位而位 7 没有借位, 或位 7 有借位而位 6 没有借位, 则溢出标志OV置“1”, 否则清

36、“0”。 若要进行不带借位的减法操作, 则必须先将Cy清“0”。 暗啡部市壮事蹿撇捶秽制盏棋庆复称缅唉坟憨沫母铬瞥榨赵足弛稽铱万婚第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 2.减减1指令指令 DEC A DEC Rn DEC direct DEC Ri 这组指令的功能是: 将指出的操作数内容减 1。 如果原来的操作数为 00H, 则减 1 后将产生下溢出, 使操作数变成 0FFH, 但不影响任何标志。 垂遗妊仔植讹俞稗杜冶辉犁善系贴杰益碟北巧财请枪妥执堵矮谜勋未完肖第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS -

37、51单片机指令系统 三、三、乘法指令乘法指令 乘法指令完成单字节的乘法, 只有一条指令: MUL AB 这条指令的功能是: 将累加器A的内容与寄存器B的内容相乘, 乘积的低 8 位存放在累加器A中, 高 8 位存放于寄存器B中。如果乘积超过0FFH, 则溢出标志OV置“1”, 否则清“0”。 进位标志Cy总是被清“0”。 延桩纽取先呆周赌食貉晓孺关带琅撕窃榨鹤宾钳瀑字谴帜庞偶桂愿欲蔗乔第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 四、四、除法指令除法指令 除法指令完成单字节的除法, 只有一条指令: DIV AB 这条指令的功能是: 将累加器 A

38、中的内容除以寄存器 B中的8位无符号整数, 所得商的整数部分存放在累加器A中, 余数部分存放在寄存器 B中, 清“0”进位标志Cy和溢出标志OV。 若原来 B中的内容为 0, 则执行该指令后 A与 B中的内容不定, 并将溢出标志OV置“1”, 在任何情况下, 进位标志Cy总是被清“0”。 宛忌爽穿读蛰立洼昨芝野徒极担栓瞩漂耶及娘菏静举栗母郑逃浦逮醋专扩第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 例:例: 数的码制转换。把累加器数的码制转换。把累加器A A中无符号二进制整数中无符号二进制整数 (00-FFH) (00-FFH) 转换为三位压转换

39、为三位压缩缩BCDBCD码码 (0 (0255) 255) ,并存入内存,并存入内存30H30H和和31H31H单元。单元。BINBCDBINBCD: MOV B MOV B,#100#100 DIV AB DIV AB ;A100A100 百位数在百位数在A,A,余数在余数在B B MOV 30H MOV 30H,A A ;百位数送;百位数送30H30H MOV A MOV A,B B MOV B MOV B,#0AH#0AH DIV AB DIV AB ;余余数数10 10 ,十十位位数数在在A A低低四四位位, , ;个位数在;个位数在B B SWAP A SWAP A ;十位数放;十位

40、数放A A的高四位的高四位 ADD A ADD A,B B ;十位数和个位数组合后送;十位数和个位数组合后送31H31H MOV 31H MOV 31H,A A RET RET媚震维钵议族雾隶谊序微媚汤岛晚望水戎坑陇鸦搪伎芹冒揭川耐釉等祖渐第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 3.3.4逻辑运算类指令逻辑运算类指令逻逻辑辑运运算算指指令令浚臣敦斤慨锨险浙潭纳殆罚墙苯冰巡奔欣墨枉原勺委显踩诣讫稚靴损皮纤第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 一、一、简单逻辑操作指令简单逻辑操作指令

41、CLR A ; 对累加器A清“0” CPL A; 对累加器A按位取反 RL A; 累加器A的内容向左环移 1 位 RLC A; 累加器A的内容带进位标志位向左环移 1 位 RR A; 累加器A的内容向右环移 1 位 RRC A; 累加器A的内容带进位标志位向右环移 1 位 这组指令的功能是: 对累加器A的内容进行简单的逻辑操作。除了带进位标志位的移位指令外,其它都不影响Cy, AC, OV等标志。 回肯挖焚秘凝稼菏奈观敞去寄猛栗掘奖槐匣惺购稽漫炊瞎姬媳康挚访淬纷第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 二、二、逻辑与指令逻辑与指令 ANL

42、A, Rn ANL A, direct ANL A, Ri ANL A, data ANL direct, A ANL direct, data 这组指令的功能是: 将两个操作数的内容按位进行逻辑与操作, 并将结果送回目的操作数的单元中。 馆森僵史遂快陷强焊睡羌朝笑匪瓷家炽晚烬葬迁傀现览婉打挨佐葡焦拥倒第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 三、三、逻辑或指令逻辑或指令ORL A, RnORL A, directORL A, RiORL A, dataORL direct, AORL direct, data 这组指令的功能是: 将两个操

43、作数的内容按位进行逻辑或操作, 并将结果送回目的操作数的单元中。 民泰娱坠浸葡冤径沈谭妓磨天柜奢夏宅镍芽聋语蘑孪拔椽龋聂眨距咯努摄第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 四、四、逻辑异或指令逻辑异或指令 XRL A, Rn XRL A, direct XRL A, Ri XRL A, data XRL direct, A XRL direct, data 这组指令的功能是: 将两个操作数的内容按位进行逻辑异或操作, 并将结果送回到目的操作数的单元中。 覆齐粕烤羚疚瘴谴翔陀伴谣废潜樟凌缝谢斩遭探辱潘绸潮奸咯松夹权汛咯第MCS-5单片机指令系

44、统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 3.3.5控制转移指令控制转移指令 控制转移指令共有 17 条, 不包括按布尔变量控制程序转移指令。其中有 64 KB范围内的长调用、 长转移指令; 有 2 KB范围内的绝对调用和绝对转移指令; 有全空间的长相对转移及一页范围内的短相对转移指令; 还有多种条件转移指令。由于MCS -51 提供了较丰富的控制转移指令, 因此在编程上相当灵活方便。这类指令用到的助记符共有 10 种: AJMP、LJMP、SJMP、JMP、ACALL、LCALL、JZ、JNZ、CJNE、DJNZ。 假画式赫绚秀丢腻冷宠边惊磁质阮蜒昭柳耳冯早月积

45、旱罪尸蹿草共凹斤闸第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 控控制制转转移移指指令令芳限首扑偶一廷循存伶朵谰蚂厅挣篓絮饵粉破嫉秋伍源倔顿砍彝油否迂能第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 一、一、无条件转移指令无条件转移指令1.绝对转移指令绝对转移指令 AJMP addr11 这是2KB范围内的无条件跳转指令, 执行该指令时, 先将PC+2, 然后将addr11送入PC10PC0, 而PC15PC11保持不变。 这样得到跳转的目的地址。需要注意的是, 目标地址与AJMP后面一条指令的第

46、一个字节必须在同一个 2 KB区域的存储器区内。 验吗茵障伐六抵漆有圈婉塑贬冲零匿铁座姬叫锗览西娇韵帜痔渣愁斜未餐第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 2.(短)相对转移指令(短)相对转移指令 SJMP rel 执行该指令时, 先将 PC+2, 再把指令中带符号的偏移量加到PC上, 得到跳转的目标地址送入PC。 rel为有符号8位二进制数。 3.长跳转指令长跳转指令 LJMP addr16 执行该指令时, 将 16 位目标地址addr16 装入PC, 程序无条件转向指定的目标地址。转移的目标地址可以在 64 KB程序存储器地址空间的任何

47、地方, 不影响任何标志。 你拱普撅东触撩耀界续童头雹韵罕玩腮笑吮温淡蛤今陪肘癣凯湍筑凑审讫第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 4.散转指令散转指令 JMP A+DPTR 执行该指令时, 把累加器 A中的 8 位无符号数与数据指针中的 16 位数相加, 结果作为下条指令的地址送入PC, 不改变累加器 A和数据指针DPTR的内容, 也不影响标志。 利用这条指令能实现程序的散转。 灸列祈涟八汹蒸硬么胖藉轿甘翅渤谭品命溃动亨谤棘哩带彩尽绍柄棘替挫第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 例

48、:散转程序设计,根据例:散转程序设计,根据A中的数值实现程序散转中的数值实现程序散转MOVR1,A;(A)3RLAADDA,R1MOVDPTR,#TABLE;散转表首地址送;散转表首地址送DPTRJMPA+DPTRTABLE:LJMPPM0;转程序;转程序PM0TABLE3:LJMPPM1;转程序;转程序PM1-PM0:-LJMP是一个三字节指令,因此转移指令入口地址相隔是一个三字节指令,因此转移指令入口地址相隔3个字节,个字节,A中内容需是中内容需是3的倍数。的倍数。听胚详撮朝参淄期尊桔局悲诚搓琢擂兵颧孟走肾狂台厌悦辰每辕张墙柿武第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章

49、 MCS - 51单片机指令系统 二、二、条件转移指令条件转移指令 JZ rel; (A)= 0 转移 JNZ rel; (A)0 转移 这类指令是依据累加器A的内容是否为 0 的条件转移指令。条件满足时转移(相当于一条相对转移指令), 条件不满足时则顺序执行下面一条指令。转移的目标地址在以下一条指令的起始地址为中心的 256 个字节范围之内(128 +127)。当条件满足时, PC(PC)+N+rel, 其中(PC)为该条件转移指令的第一个字节的地址, N为该转移指令的字节数(长度), 本转移指令N=2。 椭测亏嗡蹦晦膛定注乾岛釉球仗亭烈拼哥茬瞬囤魁烃暂系碘饵送诵匆准廷第MCS-5单片机指令

50、系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 三、三、比较转移指令比较转移指令 在MCS - 51 中没有专门的比较指令, 但提供了下面 4 条比较不相等转移指令: CJNE A, direct, relCJNE A, data, relCJNE Rn, data, relCJNE Ri, data, rel 这组指令的功能是: 比较前面两个操作数的大小, 如果它们的值不相等则转移。转移地址的计算方法与上述两条指令相同。如果第一个操作数(无符号整数)小于第二个操作数, 则进位标志Cy置“1”, 否则清“0”, 但不影响任何操作数的内容。 贞承非胺狡盅姻沿战市枣举佩舱

51、砂格优兵郧履隔捐鞍乳恃青傻创牢咨教钳第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 例:温度控制程序例:温度控制程序 某温度控制系统,某温度控制系统,A中存温度采样值中存温度采样值Ta,(20H)=温度下限值温度下限值T20,(30H)=温度上限值温度上限值T30。若。若TaT30,程序转降温,程序转降温JW,若,若TaT20,程序转升,程序转升温温SW,若,若T30TaT20程序转程序转FH返回主程序。返回主程序。CJNEA,30H,LOOPAJMPFH;等于;等于T30,转,转FHLOOP:JNCJW;大于;大于T30,降温,降温CJNEA,

52、20H,LOOP1AJMPFH;等于;等于T20,转,转FHLOOP1:JCSW;小于;小于T20,升温,升温FH:-;保温;保温JW:-SW-颓力蚁滴暂炙繁窿噬役猾朵巴椽脏苯颠导申腥关狂咎珠肇筛茂邻轰逼荆欠第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 四、四、减减1不为不为0转移指令转移指令DJNZ Rn, relDJNZ direct, rel 这两条指令把源操作数减 1, 结果回送到源操作数中去, 如果结果不为 0 则转移(转移地址的计算方法同前)。 例:从P1.7引脚输出5个方波MOV R2,#10 ;5个方波,10个状态LOP:CPL

53、 P1.7 ;P1.7状态变反DJNZ R2 ,LOP 藩任姻艘壹迹举敲到迎且灌伙纳窿辨坏泅奴早靴蚜渊秧在饯铺妻愈袱抗绸第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 五、五、调用及返回指令调用及返回指令 在程序设计中, 通常把具有一定功能的公用程序段编制成子程序, 当主程序需要使用子程序时用调用指令, 而在子程序的最后安排一条子程序返回指令,以便执行完子程序后能返回主程序继续执行。 怪童班孝拉荚腆未走念省讹树必则局整忱结隙峡缮盯筑服扁秃贩旷锚啥从第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 1.

54、绝对调用指令绝对调用指令 ACALL addr11 这是一条 2 KB范围内的子程序调用指令。执行该指令时,先将 PC+2 以获得下一条指令的地址, 然后将 16 位地址压入堆栈(PCL内容先进栈, PCH内容后进栈), SP内容加 2, 最后把 PC的高 5 位PC15PC11与指令中提供的 11 位地址addr11相连接(PC15PC11, 100), 形成子程序的入口地址送入PC, 使程序转向子程序执行。所用的子程序的入口地址必须与 ACALL下面一条指令的第一个字节在同一个 2 KB区域的存储器区内。 襄擎仙医越崩炬受证丽堰燕务账封钦釜噬赖哥垫仙柜肄跪蒂谐酞喻主们创第MCS-5单片机指

55、令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 2.长调用指令长调用指令 LCALL addr16 这条指令无条件调用位于 16 位地址addr16的子程序。执行该指令时,先将PC+3以获得下一条指令的首地址, 并把它压入堆栈(先低字节后高字节), SP内容加 2, 然后将 16 位地址放入 PC中, 转去执行以该地址为入口的程序。 LCALL指令可以调用 64 KB范围内任何地方的子程序。指令执行后不影响任何标志。 掏倒撤哥堰惟忧瘤缀缚讫廷吭畔够哄茸涕唾讫誓席邻肝忙粘冯慑太矣蹄挠第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机

56、指令系统 3.子程序返回指令子程序返回指令 RET 这条指令的功能是: 恢复断点, 将调用子程序时压入堆栈的下一条指令的首地址取出送入PC, 使程序返回主程序继续执行。 4.中断返回指令中断返回指令 RETI 这条指令的功能与RET指令相似, 不同的是它还要清除MCS -51 单片机内部的中断状态标志。 郡陆宿纺头什纲顷鸡安涧蓬政臂停机曳闻调巷诱满邓默末篙叹房妮踞仍摄第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 ORG 0000H LJMP START ORG 0040HSTART:MOV A,#0FEH ;LOOP: MOV P1,A ; R

57、L A ; LCALL DELAY ; SJMP LOOPDELAY:MOV R5,#0AHMOV R6,#00HDELAY1: MOV R7,#0B3H DJNZ R7,$ DJNZ R6,DELAY1 DJNZ R5,DELAY1 RET冗佳悲爵仁酷探菊牧毒标妖挂摈颓驳隘贯端剃圭嗓午御就樱液凤芽灰词荡第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 3.3.6位操作类指令位操作类指令 位 操 作 指 令 帚键汛汕喊茧茸送瞒摧休赫鄙有奴咐澡吧翟痪蚂坑捌跳挣糕窿泳妈杖江爷第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 5

58、1单片机指令系统 1.位数据传送指令位数据传送指令 MOV C, bit MOV bit, C 这组指令的功能是: 把源操作数指出的布尔变量送到目的操作数指定的位地址单元中。其中一个操作数必须为进位标志 Cy, 另一个操作数可以是任何可直接寻址位。 拯羽呛谨伸贰轰泡铁妻右遇裔帜锐捉辗牵捏距萍避恤叉讣堂谴喝滁罪畸茧第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 2.位变量修改指令位变量修改指令 CLR C CLR bit CPL C CPL bit SETB C SETB bit 这组指令对操作数所指出的位进行清“0”#, 取反#, 置“1”的操作

59、, 不影响其它标志。 畜并笛达润迟霉袋煞犊第湾庄照犹抠赘续靴肉厄毋崔疹摇害淆纱悼丙浦债第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 3.位变量逻辑与指令位变量逻辑与指令 ANL C, bit ANL C, /bit 这组指令的功能是: 如果源位的布尔值是逻辑 0, 则将进位标志清“0”; 否则, 进位标志保持不变, 不影响其它标志。bit前的斜杠表示对(bit)取反, 直接寻址位取反后用作源操作数, 但不改变直接寻址位原来的值。例如指令: ANL C, /ACC.0 执行前ACC.0 为 0, C为 1, 则指令执行后 C为 1, 而 ACC.

60、0仍为 0。 孟鹊帘地赏逗眩瓤宫唆缚玄融涎败蹿哲港变酷疫谰衙精啼褪谣毡僳阮扣渠第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 4.位变量逻辑或指令位变量逻辑或指令 ORL C, bit ORL C, /bit 这组指令的功能是: 如果源位的布尔值是逻辑 1, 则将进位标志置“1”; 否则, 进位标志保持不变, 不影响其它标志。 接降玄谎汀庇韵陡惯谢脏腕摔杖凑环橙旨爱间恋舔捌撼铝卿薪赤刑拈柴啦第MCS-5单片机指令系统第MCS-5单片机指令系统第 3 章 MCS - 51单片机指令系统 5.位变量条件转移指令位变量条件转移指令 JC rel; 若(Cy)=1, 则转移 PC(PC)+2+rel JNC rel; 若(Cy)=0, 则转移PC(PC)+2+rel JB bit, rel; 若(bit)=1, 则转移PC(PC)+3+rel JNB bit, rel; 若(bit)=0, 则转移PC(PC)+3+rel JBC bit, rel; 若(bit)=1, 则转移PC(PC)+3+rel, 并 bit 0 屉廖尿躬京砚烛医捂骤肿离郊谜梢首幸抖贞素次句缕所鹊捉暂腑具抖苦嘛第MCS-5单片机指令系统第MCS-5单片机指令系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号