




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,微机原理及应用,第三章MCS-51指令系统,本章是全书的重点,是汇编语言程序设计的基础。,学习指令系统重点要掌握以下几点:1、指令功能2、寻址方式3、操作数的位数和存储结构4、对PSW的影响5、指令与存储区的对应关系6、各类指针及其指向的地址范围7、转移指令的转移范围8、指令字节数和机器周期数,本章主要介绍单片机的寻址方式及指令系统,是必须掌握的内容。一台计算机所有指令的集合,称为该计算机的指令系统。各种计算机都有专用的指令系统。,第三章单片机的指令系统,第三章单片机的指令系统,3.1MCS-51指令系统概述3.2寻址方式3.3MCS-51单片机的指令系统,3.1MCS-51指令系统概述,3
2、.1.1指令格式3.1.2指令字长和指令周期3.1.3指令分类,汇编语言指令格式机器语言指令格式,3.1.1指令格式,一条用助记符表示的汇编语言指令,操作码,操作数,指令的功能,指令的操作对象,ADDA,#10H;ADD为操作码,A及#10H为操作数,汇编语言指令,汇编语言指令格式,标号:操作码助记符目的操作数,源操作数;注释例如:Loop:MOVA,R0;(R0)-(A),机器语言指令格式,双字节:,单字节:,操作码,操作码操作数或寻址方式,操作码,操作数或寻址方式,例:ADDA,#10H,或,指令字长有三种:单字节RET双字节MOVA,#68H三字节MOV30H,46H,3.1.2指令字长
3、和指令周期,指令周期是指执行一条指令所需要的时间1机器周期指令2机器周期指令4机器周期指令,附表P103,117,3.1.3指令分类,按指令功能分类,按指令字长分类,按指令执行时间分类,3.2寻址方式,寻址方式:7种寄存器寻址直接寻址寄存器间接寻址立即寻址变址间接寻址相对寻址位寻址寻址方式与寻址空间MCS-51单片机的两个突出特点,寻址:1、寻找操作数2、为PC指针寻找目标地址,寻址方式:计算机确定操作数或下一条指令地址的方法,寄存器寻址操作数存放在寄存器中,MOVA,R0MOVR0,#01001111B,工作寄存器(00H1FH)RS1RS0寄存器组片内RAM地址寄存器00第0组00H07H
4、R0R701第1组08H0FHR0R710第2组10H17HR0R711第3组18H1FHR0R7,SETBRS0MOVR3,#56H,寄存器为R0R7,A,DPTR,C,例如:MOVA,R3;机器码为EBH指令功能是把当前R3中的操作数送累加器A。指令执行示意图如图所示。设(R3)=12H,直接寻址指令中直接给出操作数的地址,功能最强,可访问种地址空间内部数据存储器地址空间():MOVA,00HMOV30H,20H特殊功能寄存器地址空间,唯一方式MOVA,90HMOVA,B位地址空间MOVC,00H,例:MOVA,30H;机器码为E530H指令功能是把直接地址30H单元的内容送累加器A,即(
5、30H)(A)如图31所示。,34H,34H,寄存器间接寻址,将指定的寄存器的内容为地址,由该地址所指定的单元内容作为操作数。movA,R0,(R0)=31H,(R0)=(31H),(A)=02H,指针,例如:MOVA,R1;机器码E7H设(R1)=60H,(60H)=50H,执行结果(A)=50H,该指令执行过程如图34所示。,立即寻址在指令中直接给出操作数,例:MOVA,#7Ah;747AH把立即数7AH送累加器A,指令执行示意图如图所示。,例:MOVDPTR,#1234H(DPH)=12H(DPL)=34H,注意:立即数前加“#”号,以区别直接地址。例如:MOVA,#30H;(A)30H
6、MOVA,30H;(A)(30H),变址间接寻址,基址寄存器变址寄存器的间接寻址方式DPTR/PCAMOVCA,A+DPTR(A)(DPTR)+(A)MOVCA,A+PC(A)(PC)+(A)JMPA+DPTR(PC)=(A)+(DPTR),MOVCA,A+PC;83H设执行指令之前(A)=50H指令功能是把该指令当前地址PC值与A累加器内容相加形成操作码地址3F51H,3F51H中的内容37H送A累加器。,PC当前值,相对寻址,以当前的PC值为基准,加上指令中给出的相对偏移量(rel)形成有效的转移地址。jcLoop;,rel,补码-128,127,JCrel;4085H设rel=85H,C
7、y=1,目标地址,PC当前值,位寻址bit,位寻址范围:1、内部RAM的位寻址区,共16个单元的128位,字节地址为20H2FH,位地址为00H7FH。可用直接位地址或字节地址加位的表示方法。,例如:MOVC,7AH或MOVC,2FH2,2、特殊功能寄存器SFR可供位寻址的专用寄存器共11个,实有位地址位83位。位地址有4种表达方式。以对程序状态寄存器PSW辅助进位位AC进行操作为例:PSWCyACF0RS1RS0OVPD0HD7HD6HD0H,1)直接使用位地址3)单元地址加位的表示法MOVC,0D6HMOVC,0D0H62)位名称表示法4)专用寄存器符号加位的表示法MOVC,ACMOVC,
8、PSW6,寻址方式与寻址空间,1、内部数据存储器的寻址方式1)00H1FH寄存器寻址4组R0R7Rn直接寻址direct寄存器间接寻址R0,R1例:(01H)(02H)MOV02H,01H;源寻址和目的寻址均为直接寻址MOVR2,01H;源寻址为直接寻址,目的寻址为寄存器寻址MOVR0,#01HMOV02H,R0;源寻址为寄存器间接寻址,目的寻址为直接寻址,内部数据存储器与内部I/O口统一编址,T1,2)20H2FH可位寻址区的寻址方式字节寻址方式:直接寻址direct寄存器间接寻址R0,R1位寻址:bit直接寻址例:MOV26H,C;位寻址(26H)1位MOV26H,A;字节寻址(26H)8
9、位,3)30H7FH数据缓冲区的寻址方式字节寻址方式:直接寻址direct寄存器间接寻址R0,R1例:MOV56H,A;字节寻址(56H)8位MOVR0,#66HMOVR0,#56H可以将用户堆栈设在该区内,堆栈指针SP,2、SFR及I/O口的操作只能直接寻址例:P1口90HMOVA,90HMOVA,P1MOVP1,A3、关于A累加器有两种寻址方式:MOVA,#23H;A寄存器寻址PUSHACCPOP0E0H,;直接寻址,统一编址,4、可做片内RAM的指针有:R0,R1,四个组共有8个预先设置RS1、RS0,以选定组。SETBRS0CLRRS1;1组MOVR0,#34H;R0的地址是?SETB
10、RS1;3组MOVR0,#68H;R0的地址是?R0/R1指向的地址范围:00H7FH,片外数据存储区和外部扩展的I/O口的寻址方式指针:R0,R18位DPTR16位指令助记符:MOVX例:MOVDPTR,#2000HMOVA,#34HMOVXDPTR,A,MOVP2,#20HMOVR0,#00HMOVA,#34HMOVXR0,A,外部数据存储器的地址,或I/O口的地址16位,只能寄存器间接寻址,或,高8位地址,低8位地址,统一编址,R0/R1指向的地址范围:00H0FFH,T2,3.3MCS-51单片机的指令系统,指令描述符号简介指令分类:数据传送类指令(29)传送类指令举例算术运算类指令(
11、24)逻辑运算类指令(24)控制转移类指令(17)布尔处理类指令(17),指令描述符号(1),Rn-R0R7工作寄存器R0R7,n=07direct-8位直接地址,表示直接寻址方式Ri-只能是R0或R1,所以i=0,1#data-8位立即数,数据范围00HFFH#data16-16位立即数,数据范围0000HFFFFHaddr16-16位目标地址addr11-低11位目标地址,指令描述符号(2),rel8位带符号地址偏移量,-128,127补码bit位地址$当前指令地址()(),数据传送类指令(1)内部,A累加器,direct直接寻址,Ri间接寻址,Rn寄存器,data立即数,数据传送类指令(
12、2),movA,Rn;(A)(Rn)n=07movA,direct;(A)(direct)movA,Ri;(A)(Ri)i=0,1movA,#data;(A)#datamovRn,A;(Rn)(A)movRn,direct;(Rn)(direct)movRn,#data;(Rn)#data,数据传送类指令(3),movdirect,A;(direct)(A)movdirect,Rn;(direct)(Rn)n=07movdirect,direct;(direct)(direct)movdirect,Ri;(direct)(Ri)i=0,1movdirect,#data;(direct)#dat
13、amovRi,A;(Ri)(A)movRi,direct;(Ri)(direct)movRi,#data;(Ri)#data,MOVR1,R0,MOVR3,R0,MOVR1,R0,MOVR1,R0,数据传送类指令(4)交换指令,XCHA,Rn;(A)(Rn)n=07XCHA,direct;(A)(direct)XCHA,Ri;(A)(Ri)i=0,1XCHDA,Ri;(A03)(Ri)03)SWAPA;(A03)(A47),popdirect;(direct)(sp),(sp)(sp)-1pushdirect;(sp)(sp)+1,(sp)(direct),数据传送类指令(5)堆栈操作,1、堆
14、栈一种数据结构,是“先进后出”线性表。2、堆栈操作:压入PUSH,弹出POP3、堆栈区:占片内RAM中连续的存储单元复位后,系统自动将SP指针指向07H用户可将堆栈区设在30H7FH数据缓冲区内,MOVSP,#5FH,堆栈有两种类型:向上生长型和向下生长型,如图2-5所示。向上生长型堆栈,栈底在低地址单元。随着数据进栈,地址递增,SP的内容越来越大,指针上移;反之,随着数据的出栈,地址递减,SP的内容越来越小,指针下移。如(b)图所示。,栈顶,栈顶,MCS-51属向上生长型堆栈,这种堆栈的操作规则如下:进栈操作:先SP加1,后写入数据。出栈操作:先读出数据,SP减1。,向下生长型堆栈,栈底设在
15、高地址单元。随着数据进栈,地址递减,SP内容越来越小,指针下移;反之,随着数据的出栈,地址递增,SP内容越来越大,指针上移。其堆栈操作规则与向上生长型正好相反。如(a)图所示。,堆栈的使用有两种方式:一种是自动方式,即在调用子程序或断点时,断点地址自动进栈。程序返回时,断点地址再自动弹回PC。这种操作无需用户干预。另一种是指令方式,即使用专用的堆栈操作指令,执行进出栈操作,其进栈指令为PUSH,出栈指令为POP。例如:保护现场就是一系列指令方式的进栈操作;而恢复现场则是一系列指令方式的出栈操作。需要保护多少数据由用户决定。,POP01HPOPPSWPOPACC,PUSHACCPUSHPSWPU
16、SH01H,保护现场:,恢复现场:,.,数据传送类指令(6)外部,movxA,Ri;(A)(Ri)i=0,1movxA,DPTR;(A)(DPTR)movxRi,A;(Ri)(A)movxDPTR,A;(DPTR)(A)movcA,A+DPTR;(A)(A)+(DPTR)movcA,A+PC;(PC)(PC)+1,(A)(A)+(PC),movDPTR,#data16;(DPTR)#data16,内部16位,外部数据,外部程序,传送类指令举例:例31已知(R0)=30H,问执行如下程序,A、R4、30H和31H单元的内容是什么。MOVA,#10HMOVR4,#36HMOVR0,#7AHMOV3
17、1H,#01H解:8031执行上述指令后的结果为:,(A)=10H(R4)=36H(30H)=7AH(31H)=01H,例32设内部RAM中30H单元的内容为40H,40H单元的内容为10H,P1口作输入口,其输入数据为0CAH,程序及执行后的结果如下:MOVR0,#30H;单元地址30H送R0中MOVA,R0;R0间址,将30H单元内容送AMOVR1,A;A送R1MOVB,R1;R1间址,将40H单元内容送BMOVR1,P1;将P1内容送40H单元MOVP2,P1;将P1内容送P2执行结果:(R0)=30H,(R1)=40H,(A)=40H,(B)=10H,(P1)=0CAH(40H)=0C
18、AH,(P2)=0CAH,例33已知片外RAM的70H单元中的一个数X,需送到片外RAM的1010H单元,试编写程序。解:ORG1000HMOVR0,#70HMOVDPTR,#1010HMOVXA,R0MOVXDPTR,ASJMP$END,外部RAM之间不能直接传送数据,必须通过累加器A传送,MOVXDPTR,R0,例35设(30H)=X,(40H)=Y,试利用堆栈区域实现30H和40H单元中的数据交换。解:堆栈区是片内RAM的一个数据区,进栈和出栈的数据符合“先进后出”的原则。MOVSP,#50H;设栈底(栈底不存数)PUSH40H;(51H)(40H)PUSH30H;(52H)(30H)P
19、OP40H;(40H)(52H)POP30H;(30H)(51H),没讲,例36已知外部RAM2020H单元中有一个数X,内部RAM20H单元一个数Y,试编出可以使它们互相交换的程序。解:MOVP2,#20HMOVR1,#20HMOVXA,R1XCHA,R1MOVXR1,ASJMP$END,指向内部RAM20H单元,指向外部RAM2020H单元,例37已知片内50H单元中有一个09的数,试编程把它变为相应的ASCII码的程序。解:因为09的ASCII码为3039H程序如下:MOVR0,#50HMOVA,#30HXCHDA,R0MOVR0,ASJMP$END,50H,A,R0,例38把01H单元
20、内容送02H单元,有几种不同的实现方法。MOV02H,01H;直接寻址3字节2周期MOVA,01H;直接寻址+寄存器寻址MOV02H,A;4字节2周期MOVA,R1;寄存器寻址2字节2周期MOVR2,AMOVR0,#01H;4字节3周期MOV02H,R0;间接寻址PUSH01H;栈操作4字节4周期POP02H第三种方法占存储空间少,执行周期短。,算术运算类指令,程序状态字PSW加法指令减法指令乘/除指令,Cy:进位标志;布尔累加器AC:辅助进位标志(半进位)F0:用户标志RS1/RS0:寄存器选择OV:溢出标志P:奇偶标志,程序状态字PSW,加法指令,不带进位的加法指令带进位的加法指令加1指令二-十进制调整
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宠物护理店经营方案
- 特色餐厅预定方案模板
- 文件资料管理考核方案
- 视频制作应急措施方案
- 商铺销售方案流程模板
- 招标文件巡检方案
- 绿化草皮排水改造方案
- 退税减税联动方案
- 员工计件奖金方案简单
- 物业服务收费限价方案
- 中考英语高频词汇大纲表(人教版)
- SMP-04-013-00 药品受托企业审计评估管理规程
- 基本流行病统计分析方法及统计分析软件的应用(与“检验”有关的文档共102张)
- 道路顶管穿越施工方案
- HYT 057-2011 海洋管理机关档案业务规范(正式版)
- DB-T 29-315-2024 天津市城市轨道交通工程施工质量验收资料管理规程-第七册
- (消毒供应中心)提高外来器械返洗率PDCA
- 《大学生心理健康教育(兰州大学版)》章节测试题及答案
- 羽毛球运动知识考试题库(含答案)
- 阴茎癌诊断治疗指南版
- 扫黄打非知多少扫黄打非进课堂主题班会
评论
0/150
提交评论