第03章整理ppt.ppt
《第03章整理ppt.ppt》由会员分享,可在线阅读,更多相关《第03章整理ppt.ppt(94页珍藏版)》请在三一办公上搜索。
1、第3章 MCS-51的指令系统,龄耽棠哇攘搓燥有窜收版铆挛挨滋氢勿效庙猩咋垃永诅昌决氯酸涪欧俱森第03章整理ppt第03章整理ppt,本章介绍MCS-51汇编语言的指令系统。,3.1 指令系统概述,MCS-51的基本指令共111条,按指令在程序存储器所占的字节来分,其中:(1)单字节指令49条;(2)双字节指令45条;(3)三字节指令17条。,稳唉绊盎卸鳃矫弓枚住催咐董彝鹤驳粱就践畏专捶湘抉锨苇哇癌丰郁钟岸第03章整理ppt第03章整理ppt,按指令的执行时间来分,其中:(1)1个机器周期(12个时钟振荡周期)的指令64条;(2)2个机器周期(24个时钟振荡周期)的指令45条;(3)只有乘、除
2、两条指令的执行时间为4个机器周期(48个时钟振荡周期);在12MHz晶振的条件下,每个机器周期为1s。有一个位变量的指令子集,在进行位变量处理的程序设计时十分有效、方便。,潍木彦泰实南爵级烟容念赫汞拨替序拾科哗镀汐又柳丁希蔚狸佐邀赤宿盔第03章整理ppt第03章整理ppt,指令格式就是指令的表示方法,一条指令由两部分组成,即操作码和操作数。操作码用来规定指令进行什么操作,操作数则是指令操作的对象,3.2 指令格式,镀钮拌性骆堡讫湃晓蓑轩渺缓卉斌皇搀撑附眩谴漱屈诺低贷旬赖凿捂貌淖第03章整理ppt第03章整理ppt,51系列指令系统中,有单字节指令、双字节指令、三字节不同长度的指令,指令长度不同
3、,格式也就不同。(1)单字节指令:指令只有一个字节,操作码和操作数同在一个字节中;(2)双字节指令:一个字节为操作码,另一个字节是操作数;(3)三字节指令:操作码占一个字节,操作数占二个字节。其中操作数既可能是数据,也可能是地址,窥侮服忿帧阳将恭冀禹磷剩村允菠郸擦摹伞矫恰弛椰亲瘤源蛙戊绘侍虫蛆第03章整理ppt第03章整理ppt,3.3 指令系统的寻址方式,寻址方式就是在指令中说明操作数所在地址的方法。51单片机共有7种寻址方式。1寄存器寻址方式:寄存器寻址方式的操作数在寄存器中,因此指定了寄存器就可以得到操作数。MOV A,Rn;(Rn)A,n=07 表示把寄存器Rn的内容传送给累加器A。,
4、擂殉明砧即仪浙醇抓秽重麦端评拔汰忘蛾袋鸟尝源肇碍央塑俱猪氟哎举晤第03章整理ppt第03章整理ppt,寄存器寻址的范围,(1)4组通用工作寄存区共32个工作寄存器。寻址不同工作区的Rn,要通过RS1、RS0转换;(2)部分特殊功能寄存器,例如A、B 以及数据指针寄存器DPTR。,夺夷飘跃镭烁席农完阻锰荐怀衍昌吸柯谐膏蔓讫仆件觅滓企詹逾钧趁蓟谷第03章整理ppt第03章整理ppt,2直接寻址方式:在指令寻址方式中,操作数直接以单元地址的形式给出,单元地址中的内容就是操作数。MOV A,40H 表示把内部RAM 40H单元的内容传送给累加器A。,仑肘辕竿哆黑合附艇谜慰趋买孪弄牌酞拧帮键狠胁异杖奶叭
5、塌鞋哎工虽榨第03章整理ppt第03章整理ppt,直接寻址方式的寻址范围,(1)内部RAM的128个单元;(2)特殊功能寄存器。特殊功能寄存器除了以单元地址的形式给出外,还可以用寄存器符号的形式给出。例如:MOV A,80H 与 MOV A,P0是等价的。*直接寻址方式是访问除A、B、DPTR以外的SFR的唯一寻址方式。,秀沂嚼谣激瓜责墙谭室栗安芦压仟始铜少触狠艘砌制弦娟失射镑酸椎嫩麓第03章整理ppt第03章整理ppt,3.寄存器间接寻址方式:寄存器间接寻址方式就是寄存器中存放的是操作数的地址,使用的寄存器是R0与R1,为了区别于寄存器寻址方式,在寄存器的名称前面加前缀标志“”。访问内部RA
6、M或外部RAM的低256个字节时,可以(片内只能)采用R0或R1作为间址寄存器。例如:片内:MOV A,Ri;i=0或1 片外:MOVX A,Ri;i=0或1 假如,其中Ri中的内容为40H,操作的结果是把内部RAM中40H单元的内容送到A。访问外部RAM时,可以(外部RAM的低256B以外的字节,只能)采用DPTR作为间址寄存器。例如:MOVX A,DPTR 假如,其中DPTR中的内容为0140H,操作的结果是把外部RAM中0140H单元的内容送到A。,打员执荐窝画钠边驭拽船嚏蝗苞群辉惕病娱陆订拾枢荣爸窜婉铡动佑嘎嘉第03章整理ppt第03章整理ppt,寻址范围:(1)访问内部RAM低128
7、个单元,其通用形式为:MOV A,Ri;i=0或1(2)对片外RAM的64K字节的间接寻址,可以使用下面的形式:MOVX A,DPTR(3)片外RAM的低256字节,除可以使用DPTR外,还可以使用R0、R1。例如:MOVX A,Ri;i=0或1(4)堆栈区:堆栈操作指令有:PUSH(压栈)和POP(出栈),使用堆栈指针(SP)作间址寄存器可以对堆栈区进行间接寻址。,圭黎饯萎青寓略驰衅栅哆叙笑彦喻稠喜睁吼蝴宵抱狰期补挽篮贾罩旨筏惯第03章整理ppt第03章整理ppt,4立即寻址方式:,立即寻址方式就是操作数在指令中直接给出。为了区别于直接寻址方式,需在操作数前面加前缀标志“#”。例如:MOV
8、A,#40H 操作的结果是把立即数40H(常数)送给累加器A。,谊旋嵌量盅干氓谍道庄跌缴卿迢襟或蜡桐假状米勾览挤轻界腿轩缕莉囊专第03章整理ppt第03章整理ppt,5基址寄存器加变址寄存器间址寻址方式:这种寻址方式用于读取ROM中的数据并送给A。本寻址方式是以DPTR或PC作基址寄存器,以累加器A作为变址寄存器,并以两者内容相加形成的16位地址作为操作数的地址,以达到访问数据表格的目的。例如:指令 MOVC A,A+DPTR 其中A的原有内容为05H,DPTR的内容为0400H,该指令执行的结果是把程序存储器0405H单元的内容传送给A。,仟购炔钧谍共涉泽姆瘦芳姥夷轴欲午堂灭袒绑予嗜杯沾失销
9、沮禄蹄蓝灌膊第03章整理ppt第03章整理ppt,说明:(1)本寻址方式只能对ROM进行寻址,或者说它是专门针对ROM的寻址方式,寻址范围可达到64KB。(2)本寻址方式的指令只有3条:MOVC A,A+DPTRMOVC A,A+PCJMP A+DPTR,孤袄鸡擞介嗽爽案牢驾旁础届肾翻铁钳爪箭找半傈秃估刊垄噶培埂淄灵酱第03章整理ppt第03章整理ppt,6位寻址方式:MCS-51有位处理功能,可以对数据位进行操作,因此就有相应的位寻址方式。位寻址指令中可以直接使用位地址。例如:MOV C,40H;作用是把位40H的值送到进位位C。,赶赂功兜闺紊升缅伶邦讽揩哟叠娱纱送敢梳众又套窑射高舷矢捌绰兢
10、员教第03章整理ppt第03章整理ppt,位寻址方式的寻址范围,(1)内部RAM中的位寻址区:单元地址为20H2FH,共16个单元,位地址是00HFFH,对这128个位的寻址使用直接地址表示。位寻址区中的位有两种表示方法,a.直接使用位地址。例如:40H。b.单元地址加位数的表示方法。例如,28H.0,指的是28H单元中的最低位。位40H 与 28H.0 是同一个位,它们是等价的。,插钟爹杖齐社弹酣萍钮殊胃冉丫浊扯鲁浴间肥工虑剃浓亡窄辜怕走燥蹿镰第03章整理ppt第03章整理ppt,(2)特殊功能寄存器中的可寻址位:可供寻址的特殊功能寄存器有11个,共有88个位,其中5个位没有定义,所以有可寻
11、址位83个。这些寻址位在指令中有如下4种表示方法:a.直接使用位地址。例如PSW.5的位地址为0D5H。b.位名称的表示方法。例如PSW.5是F0标志位,可使用 F0表示该位。c.单元地址加位数的表示方法。例如0D0H单元(即PSW寄存器)的第5位,表示为:0D0H.5。d.特殊功能寄存器符号加位数的表示方法。例如PSW寄存器的位5表示为:PSW.5。,队桶嘻茬锨遮踌厚粕系桩攀马谰进啼垢辆煌展去坦寂痪诚挛垃谩谆他喷鲤第03章整理ppt第03章整理ppt,7相对寻址方式:相对寻址方式是为解决程序转移而专门设置的,为转移指令所采用。在相对寻址的转移指令中,给出了地址偏移量,以“rel”表示,即把P
12、C的当前值加上偏移量就构成了程序转移的目的地址:目的地址=转移指令所在的地址+转移指令的字节数+rel,檀筐岿篇醚萨良川莫革碌极稳健淆恬闰偏八寨彰棒恼柒囤潦咆课雍锄日枷第03章整理ppt第03章整理ppt,在实际编程中,“rel”通常用标号代替例:SJMP LOOP1,例:2000H:SJMP 08H;原PC值为2000H;执行这条指令后的当前PC值为2002H,rel为08H。2002H+08H=200AH,转移目的地址为200AH,程序就跳转至200AH去执行了。,右图为SJMP 08H相对寻址示意图。,饲基购勿穿雄沽棚午迁名庄试摆新稼壤碳觅烟氮悲明摧定衬绷涉拉会巩辨第03章整理ppt第0
13、3章整理ppt,偏移量rel是一个带符号的8位二进制数补码数,范围是:128+127。因此相对转移是以转移指令所在地址为基点,向地址增加方向最大可转移(127+转移指令字节)个单元地址,向地址减少方向最大可转移(128-转移指令字节)个单元地址。,纬蚌晒景荧漳诊隋僚洛机呛它衣集浮布炕缘磅枉馒拦胸琳候司骂孺皋傀焰第03章整理ppt第03章整理ppt,MCS-51指令系统的7种寻址方式及寻址空间,概括起来如下表(表3-1 P43):,缅塌爬发派曲烁肿辽么烯微傲钱痔南憨坛驭切冗躇怠爹笆萨丛迸诌粘庭钵第03章整理ppt第03章整理ppt,3.4 MCS-51指令系统分类介绍,111条指令,按功能分类,
14、可分为下面5大类:(1)数据传送类(28条)(2)算术操作类(24条(3)逻辑运算类(25条)(4)控制转移类(17条)(5)位操作类(17条),渊素喷誓瑶痊绊英篙敌抑裤怖垢雌握娶哎荚栏味倡挣堪硒砖哉嘎她牟派菏第03章整理ppt第03章整理ppt,描述指令的一些符号,Rn 当前寄存器区的8个工作寄存器 R0R7(n=07)。Ri 当前选中的寄存器区中可作间接寻址 寄存器的2个寄存器R0、R1(i=0,1)。direct 直接地址,即8位的内部数据存储器单 元或特殊功能寄存器的地址。#data 包含在指令中的8位立即数。,峪驾疗写局琢罗胰痘早勇肩阎时桌腻插蓖职单庭矛吉近屿锚畅言日畜娃涪第03章整
15、理ppt第03章整理ppt,#data16 包含在指令中的16位立即数。rel 相对转移指令中的偏移量,为8位 的带符号补码数DPTR 数据指针,可用作16位的地址寄 存器。bit 内部RAM或特殊功能寄存器中的直 接寻址位。C 或Cy 进位标志位或位处理机中的累加 器。,乡甲汀拨锭营干浅臆寻呕饯莽告君拍毖宠过职排核嘶禾属除摊盅篮赤峡滩第03章整理ppt第03章整理ppt,addr11 11位目的地址addr16 16位目的地址 间接寻址寄存器前缀(X)X中的内容。(X)由X寻址的单元中的内容。箭头右边的内容被箭头左边的内容 所取代。,埠绘扰隆雕梆页铃羔怀仪牲游遗焦花淹菠匈鞠酵址场巳穿师荆递煽
16、噎浓鼠第03章整理ppt第03章整理ppt,3.4.1 数据传送类指令 数据传送类指令是编程时使用最频繁的一类指令。一般情况下的通用格式及助记符如下:MOV,执行的结果是把源操作数传送给目的操作数,属“复制”性质,而不是“搬家”。如果需要不丢失目的操作数,一般使用传送类指令中的交换型指令。数据传送类指令不影响标志位中的进位标志位Cy、辅助进位标志位Ac和溢出标志位OV,影响奇偶标志位P。,乓测斤烛诉莎绑讲翔程诱术谱近踊看拴园棺殿斩鸡撵迷睁樱悍积爷佃狞啄第03章整理ppt第03章整理ppt,1、以累加器A为目的操作数的指令(4条):MOV A,Rn;(Rn)A,n=07 MOV A,Ri;(Ri
17、)A,i=0,1 MOV A,direct;(direct)A MOV A,#data;#dataA 操作:将源操作数的内容送入累加器A。例如:MOV A,R6;(R6)A,属寄存器寻址 MOV A,R0;(R0)A,属间接寻址 MOV A,70H;(70H)A,属直接寻址 MOV A,#78H;78HA,属立即寻址,蝗馒直值筛倪官胯酬饼懒质嚣花撩见滚惟街晴诌俊誊秃蚊虽政柞陇耽域魏第03章整理ppt第03章整理ppt,【例】若R0=40H,(30H)=60H,(40H)=50H MOV A,R0;将工作寄存器R0中的数据传送 至A中,A=40H MOV A,R0;将以R0中内容为地址的存储单
18、元中的数据送至A中 A=50H MOV A,30H;将直接地址30H存储单元中 的数据传送至A中,A=60H MOV A,#30H;将立即数#30H送入A中,A=30H,照懒鸭列坊辨助摊福缉速备皂燃磷舀蝇帛概廖员呸止孜键旭漆强虐粒十糙第03章整理ppt第03章整理ppt,2、以Rn为目的操作数的指令:MOV Rn,A;(A)Rn,n=07 MOV Rn,direct;(direct)Rn,n=07 MOV Rn,#data;#dataRn,n=07 操作:将源操作数的内容送入当前一组工作寄存器区的R0R7中的某一个寄存器。,【例】:当(A)=30H时,执行 MOV R6,A;(A)R6 结果:
19、(R6)=30H【例】:当(70H)=10H时,执行 MOV R6,70H;(70H)R6 结果:(R6)=10H【例】:执行 MOV R6,#78H;78HR6 结果:(R6)=78H,导淑撑拦砖胀灸宗罐瓣轧卡油茅疹农瘴预沫撬牛缠蚀柏赦剪话飘载役泳蒋第03章整理ppt第03章整理ppt,3、以直接地址direct为目的操作数的指令:MOV direct,A;(A)direct MOV direct,Rn;(Rn)direct,n=07 MOVdirect1,direct2;(direct2)direct1 MOV direct,Ri;(Ri)direct,i=0,1MOV direct,#d
20、ata;#datadirect 操作:将源操作数送入直接地址指出的存储单元。direct指的是内部RAM或SFR的地址。,【例】当(A)=30H时,执行 MOV 55H,A;(A)55H 结果:(55H)=30H,砾杨诱枕穷堆衬惠蝎炙微拇喷去智虚傣梗辣社炳哄魔拱与冈汾哑淋画挣冶第03章整理ppt第03章整理ppt,4、以寄存器间接地址为目的操作数的指令:MOV Ri,A;(A)(Ri),i=0,1 MOV Ri,direct;(direct)(Ri)MOV Ri,#data;#data(Ri)操作:将源操作数的内容送入R0或R1指出的存储单元内。,【例】:当(A)=30H时,(R0)=44H
21、执行 MOV R0,A;(A)(R0)结果:(44H)=30H【例2】:当(R0)=33H 执行 MOV R0,#22H;22H(R0)结果:(33H)=22H,骑捧满氮痴辊帐类迈练妮需澡戴胡品索款诗粹频袖锗竿冻丁药肾半走讯熏第03章整理ppt第03章整理ppt,5、16位数传送指令:MOV DPTR,#data16;#data16DPTR 操作:将16位常数送入DPTR。这是指令系统中唯一的一条16位数据的传送指令,用来设置地址指针DPTR。DPTR由DPH与DPL组成,立即数的高8位送入DPH,立即数的低8位送入DPL。,【例】:执行 MOV DPTR,#1234H;1234HDPTR 结
22、果:(DPTR)=1234H 其中:DPH=12H,DPL=34H,芭腊蹈馆玫灵侮送乃栋腹俏拆顷游协旦汰狮陛普阐法奢侦上毋昼哮臣仕巍第03章整理ppt第03章整理ppt,6、堆栈操作指令:在MCS-51内部RAM中可以设定一个“后进先出”的区域称作堆栈。堆栈指针SP指出堆栈的栈顶位置。(1)进栈指令:PUSH direct 操作:先将栈指针SP加1,然后把direct中的内容送到栈指针SP指示的内部RAM单元中。,座发藏傲午思雪逊呸艇险举和畜等铱酷跳么雷讽宫缆橱昼侗瞄绞韶拓檄嘎第03章整理ppt第03章整理ppt,【例】PUSH 30H;(30H)=2BH,操作过程如图,迄芭灯遮届移僚芋惺焊欠
23、晚饺劳投指些水缀讳顶驮剁父笼缉星豢赋蹭兹要第03章整理ppt第03章整理ppt,(2)出栈指令 POP direct 操作:SP指示的栈顶(内部RAM单元)内容送入direct字节单元中,栈指针SP减1。,攻凝橡踢刽蛙没伟支鲁肋丧羞揪倍汤洲吁科绝缚遥兄仪孤固支敝牢冬门伞第03章整理ppt第03章整理ppt,【例】POP A;(A)=2BH,操作过程如图,掩锹惕友翟吃帽首腐茬泽疗新侦棺啼奋淘娥胚错展煎绚盼酿揩耕恫怕学恢第03章整理ppt第03章整理ppt,7、累加器A与外部数据存储器传送指令:MOVX A,DPTR;(DPTR)A,读外部RAM或I/O MOVX A,Ri;(Ri)A,读外部RA
24、M或I/O MOVX DPTR,A;(A)(DPTR),写外部RAM或I/O MOVX Ri,A;(A)(Ri),写外部RAM或I/O 操作:读外部RAM存储器或I/O中的一个字节的数据到累加器A中,或从累加器A中的一个字节的数据写到外部RAM存储器或I/O中。,兰赊苍腥列绒篙积氟雪铱可袋惧揍砖笑契笼破壮卜尘女色斥蛇旦源农辅菱第03章整理ppt第03章整理ppt,采用16位的DPTR作间接寻址,可寻址64KB片外RAM,高8位地址(DPH)由P2口输出,低8位地址(DPL)由P0口输出。采用Ri(i=0,1)作间接寻址,可寻址片外低256个单元的RAM。8位地址和数据均由P0口输出,可选用其它
25、任何输出口线来输出高于8位的地址(一般选用P2口输出高8位的地址)。MOV的后面“X”表示单片机访问的是片外RAM或I/O。,【例】:(DPTR)=1F62H,(1F62H)=70H,执行下列指令:MOVX A,DPTR;(DPTR)A 结果:(A)=70H【例】:(R0)=6FH,(A)=05H,执行下列指令:MOVX Ri,A;(A)(R0)结果:(6FH)=05H问题:地址为6FH的存储单元属于片内还是片外?,男旬称糯可齿寒届链打杉颅蕴椎挛扶温特虑卜启疾葡验渝漱自捕便港谰熙第03章整理ppt第03章整理ppt,8、查表指令:共两条指令,用于读ROM中的数据表格的指令,均采用基址寄存器加变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03 整理 ppt

链接地址:https://www.31ppt.com/p-5272760.html