欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    指令系统.ppt

    • 资源ID:3115858       资源大小:770.02KB        全文页数:82页
    • 资源格式: PPT        下载积分:8
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要8
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    指令系统.ppt

    2019/7/12,第一章 概述,3.1 指令及其表示方法 3.2 寻址方式 3.3 指令系统,第3章 MCS-51指令系统,2019/7/12,第一章 概述,3.1 指令及其表示方法 3.2 寻址方式 3.3 指令系统,第3章 MCS-51指令系统,2019/7/12,第一章 概述,3.1 指令及其表示方法,指令(Instruction):CPU完成某一动作的指示和命令。 指令系统(Instruction set) :微机所具有的所有指令的集合。指令系统越丰富,CPU的功能越强。 指令的两种表示方法: (1)机器码(machine code):用二进制代码表示指令。 (2)助记符(mnemonic):用表征指令功能的字符形式表示指令。,2019/7/12,第一章 概述,MCS-51单片机指令系统共有111条指令。 按照指令对应的机器码字节数,可分为:单字节指令(49条)、双字节指令( 46条)、三字节指令( 16条)。 其中: 操作码(opecode)表示指令的操作种类。如MOV表示数据传送操作,ADD表示加法操作等。 操作数(operand)表示参加运算的数据或数据的有效地址。,2019/7/12,第一章 概述,例, 指令 机器码 MOV A,23H E5 23 MOV A,#23H 74 23 SWAP A C4 MOV A,R3 EB MOV DPTR,#2068 90 20 68 MOV 50H,#64H 75 50 64,2019/7/12,第一章 概述,3.1 指令及其表示方法 3.2 寻址方式 3.3 指令系统,第3章 MCS-51指令系统,2019/7/12,第一章 概述,寻址方式:寻找操作数地址或指令地址的方式。 MCS-51指令系统共有7种寻址方式: 立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、相对寻址、变址寻址和位寻址等。,3.2 寻 址 方 式,2019/7/12,第一章 概述,1、立即寻址(immediate addressing ),一般是双字节指令,其中第一个字节是操作码,第二个字节是操作数,操作数在指令中直接给出,又称为立即数。 在立即数前面必须加上前缀“#”。如: MOV DPTR,#1234H 1234H是立即数,功能是把16位立即数1234H送到数据指针DPTR中,如图。,2019/7/12,第一章 概述,PC,PC+1,PC+2,10010000,00010010,00110100,MOV DPTR,#1234H 机器码:90 12 34,操作码,立即数高位,立即数低位,00010010,00110100,DPH,DPL,立即寻址示意图(MOV DPTR,#1234H),程序存储器,2019/7/12,第一章 概述,例: MOV P1,#55H ;将立即数55H送P1口 MOV 20H,#55 ;将立即数55H送20H 单元 MOV A,#0F0H ;将立即数0F0H送累加器A MOV R4,#0FH ;将立即数0FH送寄存器R4中 MOV R0,#20H ;将立即数20H送寄存器R0口,2019/7/12,第一章 概述,2、直接寻址(direct addressing),在指令中直接给出操作数所在单元的地址,如 MOV A,3AH 功能:把片内RAM中3AH单元内的数据传送给累加器A。如图,2019/7/12,第一章 概述,直接寻址示意图(MOV A,3AH),PC,PC+1,11100101,00111010,操作码,程序存储器,MOV A,3AH 机器码:E5 3A,2019/7/12,第一章 概述,直接寻址方式注意事项:,(1)寻址范围限于内部RAM的低128字节单元和特殊功能寄存器(SFR直接地址或名字符号给出)。 如PUSH DPH=PUSH 83H。 (2)访问累加器A时,用ACC表示累加器,以便与寄存器寻址方式区别。,2019/7/12,第一章 概述,3、寄存器寻址(register addressing),在指令中将指定寄存器的内容作为操作数,寄存器用符号名表示。如: INC R0 功能:把寄存器R0的内容加1,再送回R0中。 寄存器寻址范围:工作寄存器R0-R7,A、B、DPTR及Cy。,2019/7/12,第一章 概述,如: MOV P1,A ;将累加器A的内容送到P1口 MOV P1,R4 ;将寄存器R4的内容送到P1口 CLR A ;将累加器A清0 CPL A ;将累加器A中的内容取反 RL A ;将累加器A的内容循环左移,2019/7/12,第一章 概述,4、寄存器间接寻址(register indirect addressing ),寄存器中存放的是操作数的地址,从该地址中取出的才是操作数。 可作为寄存器间接寻址的寄存器有R0、R1、SP和DPTR,寄存器前需加 “”。如: MOV A,R0 设R0存放的是3AH,指令的功能是将3AH地址单元的内容送到累加器A中。如图,2019/7/12,第一章 概述,寄存器间接寻址示意图(MOV A,R0 ),2019/7/12,第一章 概述,寄存器间接寻址的寻址范围:,R0或R1为间接寻址寄存器寻址片内RAM的低128单元和片外RAM低256单元。 DPTR作为间接寻址寄存器寻址 片外RAM64KB单元。 SP作间接寻址寄存器寻址 堆栈区,操作指令PUSH和POP 。,2019/7/12,第一章 概述,5、变址寻址(index addressing ),以DPTR或PC为基址寄存器,A为变址寄存器,两者内容相加形成的16位程序存储器地址为操作数地址,又称基址+变址寄存器间接寻址。 如 MOVC A,A+DPTR 功能:把DPTR和A的内容相加后得到的程序存储器地址单元的内容送A。,2019/7/12,第一章 概述,6、相对寻址(relative addressing ),仅用于相对转移指令。指令中给出的操作数是寻找指令的相对地址。 相对寻址的有效地址:D=PC+rel(rel为相对地址),2019/7/12,第一章 概述,7、位寻址(bit addressing ),位寻址是位操作指令的寻址操作。 位寻址区在片内RAM中: (1)20H2FH,共16个RAM单元,128个位,位地址为00H7FH; (2)特殊功能寄存器SFR中有11个寄存器可以进行位寻址。,2019/7/12,第一章 概述,练习,P73:3.1第8小题 P73:3.2第3小题,2019/7/12,第一章 概述,3.1 指令及其表示方法 3.2 寻址方式 3.3 指令系统,第3章 MCS-51指令系统,2019/7/12,第一章 概述,3.3 指令系统,MCS-51单片机指令系统包括111条指令,按功能分为:,数据传送指令 算术运算指令 逻辑运算指令 控制转移指令 位操作指令,2019/7/12,第一章 概述,指令的书写规则表,2019/7/12,第一章 概述,3.3.1 数据传送类指令,数据传送操作是指把数据从源地址传送到目的地址,源地址内容不变。 包括内部 RAM、寄存器、外部RAM以及程序存储器之间的数据传送。,2019/7/12,第一章 概述,1. 内部8位数据传送指令(15条) 主要用于MCS-51单片机内部RAM与寄存器之间的数据传送。格式: MOV , 1) 以累加器A为目的地址的传送指令(4条),2019/7/12,第一章 概述,例:已知相应单元的内容如下,请指出每条指令执行后相应单元内容的变化。,(1) MOV A,#20H (2) MOV A,40H (3) MOV A,R0 (4) MOV A,R0,(1) A=20H (2) A=30H (3) A=50H (4) A=10H,2019/7/12,第一章 概述,2) 以Rn为目的地址的传送指令(3条),2019/7/12,第一章 概述,3) 以直接地址为目的地址的传送指令(5条),2019/7/12,第一章 概述,4) 以寄存器间接地址为目的地址的传送指令,2019/7/12,第一章 概述,2、16位数据传送指令(1条),MOV DPTR,#data 16 功能:把16位常数送入DPTR。唯一的16位立即数传送指令。 执行结果:把高位字节立即数送入DPH,低位字节立即数送入DPL。 如:MOV DPTR,#1234H 结果:DPTR=1234H。,2019/7/12,第一章 概述,综合练习:给出每条指令执行后的结果。,段1:,段2:,2019/7/12,第一章 概述,3. 外部数据传送指令(4条),2019/7/12,第一章 概述,注意:,内部RAM间可以直接进行数据传递,但与外部RAM进行数据传送只能通过累加器A。 A与外部RAM之间传送数据时只能用间接寻址方式,首先将要读或写的地址送入DPTR或Ri(R0或R1)中,然后再用读写命令。,2019/7/12,第一章 概述,例:把外部数据存储器2040H单元中的数据传送到外部数据存储器2560H单元中去。,解:MOV DPTR,#2040H MOVX A,DPTR ;先将2040H单元的内容传送到累加器A中 MOV DPTR,#2560H MOVX DPTR,A ;再将累加器A中的内容传送到2560H单元中,2019/7/12,第一章 概述,例:将片外RAM 0000H单元的数据传送到片内RAM 60H单元。,解: MOV DPTR,#0000H MOVX A,DPTR ;先将2040H单元的内容传送到累加器A中 MOV 60H,A ;将累加器A中的内容传送到片内60H单元中,2019/7/12,第一章 概述,4. 交换和查表类指令(9条),1) 字节交换指令(3条),2019/7/12,第一章 概述,2) 半字节交换指令(1条),3) 累加器A中高4位和低4位交换(1条),2019/7/12,第一章 概述,4) 查表指令(2条),用于查找存放在程序存储器中的表格。,2019/7/12,第一章 概述,5) 堆栈操作指令(2条),注意:累加器A入栈、出栈指令中A用ACC表示, 即PUSH/POP ACC 或 PUSH/POP 0E0H,2019/7/12,第一章 概述,例:已知当前SP38H,(10H)70H; 执行指令: PUSH 10H 指令执行后:SP=? (10H)=? (39H)=?,答:SP39H,(10H)70H,(39H)70H。,入栈操作示意图,2019/7/12,第一章 概述,例:SP=40H,(40H)=68H,A=20H,POP ACC 指令执行后;SP?,(40H)?,A?,答:SP3FH,(40H)68H,A68H,出栈操作示意图,2019/7/12,第一章 概述,例:设堆栈指针为30H,把A和DPTR中的内容压入,然后根据需要再把它们弹出,编写实现该功能的程序段。,解: MOV SP,#30H ;设置堆栈指针,30H为栈底地址 PUSH ACC ;SP+1SP,SP=31H,ACC (SP) PUSH DPH ;SP+1SP,SP=32H,DPH (SP) PUSH DPL ;SP+1SP,SP=33H,DPL (SP) POP DPL ;(SP)DPL,SP-1 SP,SP=32H POP DPH ;(SP)DPH,SP-1 SP,SP=31H POP ACC ;(SP)ACC,SP-1 SP,SP=30H,2019/7/12,第一章 概述,3.3.2 算术运算类指令 1. 加、减法指令(22条) 1) 加法指令(8条),2019/7/12,第一章 概述,注意:, ADD与ADDC的区别为是否加进位位C。 指令执行结果均在累加器A中。,2019/7/12,第一章 概述,2) 减法指令(4条),2019/7/12,第一章 概述,注意:, 减法指令中没有不带借位的减法指令,在需要时,必须先将Cy清0。 指令执行结果均在累加器A中。,2019/7/12,第一章 概述,3) BCD码调整指令(1条),注意:DA A指令只能跟在ADD或ADDC加法指令后,不适用于减法。,2019/7/12,第一章 概述,例: 说明指令MOV A,#05H和ADD A,#08H及DA A的执行结果。 解:MOV A,#05H ;05HA ADD A,#08H ;05H+08HA,A=0DH DA A ;自动调整为BCD码,A=13H,2019/7/12,第一章 概述,4) 加1、减1指令(9条),2019/7/12,第一章 概述,例:分别指出指令INC R0和INC R0的执行结果。设R0=30H,(30H)=00H。 解: INC R0 INC R0,; R0=31H,;(30H)=01H,R0中内容不变,2019/7/12,第一章 概述,5) 乘法指令(1条),6) 除法指令(1条),功能:8位无符号数相乘,高字节放入B,低字节放入A。,2019/7/12,第一章 概述,3.3.3 逻辑运算类指令 1) 逻辑与指令(6条),通常用于将一个字节中的指定位清0,其它位不变。,2019/7/12,第一章 概述,2) 逻辑或指令(6条),通常用于将一个字节中的指定位置1,其余位不变。,2019/7/12,第一章 概述,3) 逻辑异或指令(6条),“异或”原则是相同为0,不同为1。,2019/7/12,第一章 概述,4) 累加器A清0和取反指令(2条),2019/7/12,第一章 概述,5) 循环移位指令(4条),注意:执行带进位的循环移位指令之前,必须给C置位或清0。,2019/7/12,第一章 概述,3.3.4 控制转移类指令 控制转移类指令的本质是改变程序计数器PC的内容,从而改变程序的执行方向。 控制转移指令分为: 1)无条件转移指令:程序无条件转移到指定处。 2)条件转移指令:指令中给出转移条件,执行指令时,先测试条件,若满足条件,则程序发生转移,否则,仍顺序执行程序。,2019/7/12,第一章 概述,1. 无条件转移指令(4条),1) 长转移指令(1条),指令转移范围:64 KB,2) 绝对转移指令(1条),指令转移范围:2KB,2019/7/12,第一章 概述,3) 短转移指令 (1条),转移范围是前128后127字节。,2019/7/12,第一章 概述,小技巧: 实际应用中,LJMP、AJMP和SJMP后的addr16、addr11或rel都是用标号来代替的,不必写出具体地址。 初学时,所有用SJMP或AJMP的地方都可以用LJMP来替代。,2019/7/12,第一章 概述,4) 间接寻址的无条件转移指令(1条),通常用于散转(多分支)程序。如处理功能键。,2019/7/12,第一章 概述,KEY: MOV DPTR,#KTAB MOV A,40H ADD A,A JMP A+DPTR KTAB: AJMP FUNC0 AJMP FUNC1 FUNC0: FUNC1: ,要求不同功能键执行不同程序段。设每个功能键对应一个键值 X(0XFH)。 设X已存入片内RAM的40H单元中。 若X=0,则执行程序段FUNC0 若X=1,则执行程序段FUNC1 ,2019/7/12,第一章 概述,1) 累加器A判0指令(2条),转移范围:-128+127。 两条指令都是根据A的内容是否为0来决定是否转移,指令执行后,A的内容不变。,2. 条件转移指令(8条),2019/7/12,第一章 概述,例: MOV A,R0 JZ L1 MOV R1,#00H AJMP L2 L1: MOV R1,#0FFH L2: END,2019/7/12,第一章 概述,2) 比较转移指令(4条),转移范围:-128+127。,2019/7/12,第一章 概述,3) 减1非零转移指令(2条),通常用于循环程序中控制循环次数。,例:程序循环执行100次. MOV R2,#100 ;设循环计数器初值 LOOP: ;多次循环程序段 DJNZ R2,LOOP ;循环控制 ;循环结束,2019/7/12,第一章 概述,4)判C标志指令(2条),2019/7/12,第一章 概述,5) 位条件转移指令(3条),JBC与JB指令的区别是:前者转移后并把寻址位清0,后者只转移不清0寻址位。,2019/7/12,第一章 概述,3. 调用和返回指令(5条),子程序调用和返回指令也使程序发生转移。 子程序调用过程与转移指令不同: 转移时,PC当前值没有入栈保存。而子程序调用时,PC值入栈保存,并可通过返回指令返回主程序。,2019/7/12,第一章 概述,2) 绝对调用指令(1条),1) 长调用指令(1条),2019/7/12,第一章 概述,3) 返回指令(2条),两者不能互换使用。,2019/7/12,第一章 概述,4) 空操作(1条),延时功能。,2019/7/12,第一章 概述,3.3.5 位操作类指令 位操作指令的操作数是“位”,其取值只能是0或1,故又称之为布尔操作指令。 操作对象: 片内RAM的20H2FH,共16个单元128个位,每个位均定义一个名称:00H7FH,称为位地址。 特殊功能寄存器SFR中可寻址的寄存器的每个位也有名称定义。,2019/7/12,第一章 概述,位寻址有三种不同的写法:,第一种是直接地址写法, 如 MOV C,0D2H,其中,0D2H表示PSW中的OV位地址。 第二种是点操作符写法,如 MOV C , 0D0H.2。 第三种是位名称写法,在指令格式中直接采用位定义名称,这种方式只适用于可以位寻址的SFR,如MOV C,OV。,2019/7/12,第一章 概述,1. 位传送指令(2条),位传送指令的操作数中必须有一个是进位位C,不能在其它两个位之间直接传送。 进位位C也称为位累加器。,2019/7/12,第一章 概述,2. 位状态修改指令(6条),2019/7/12,第一章 概述,例:指令SETB 3DH 假定内部RAM (27H)= 00H,执行SETB 3DH后,由于3DH对应27H的第5位,因此该位变为1,也就是27H单元的内容变为20H。如图。,位寻址示意图,2019/7/12,第一章 概述,3. 位逻辑运算指令(4条),2019/7/12,第一章 概述,3.1 指令及其表示方法 3.2 寻址方式 3.3 指令系统,第3章 MCS-51指令系统,2019/7/12,第一章 概述,总 结,理解指令相关概念,熟悉指令表示方法; 理解指令的寻址方式,掌握立即寻址、直接寻址、寄存器寻址、寄存器间接寻址等常见寻址方式; 掌握 常见指令的功能及其用法。,

    注意事项

    本文(指令系统.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开