第3讲 51的指令系统PPT教学课件

上传人:日度 文档编号:133587663 上传时间:2020-05-28 格式:PPT 页数:39 大小:512KB
返回 下载 相关 举报
第3讲 51的指令系统PPT教学课件_第1页
第1页 / 共39页
第3讲 51的指令系统PPT教学课件_第2页
第2页 / 共39页
第3讲 51的指令系统PPT教学课件_第3页
第3页 / 共39页
第3讲 51的指令系统PPT教学课件_第4页
第4页 / 共39页
第3讲 51的指令系统PPT教学课件_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《第3讲 51的指令系统PPT教学课件》由会员分享,可在线阅读,更多相关《第3讲 51的指令系统PPT教学课件(39页珍藏版)》请在金锄头文库上搜索。

1、1 第3讲 MCS 51的指令系统 MCS 51单片机原理及设计 2 本讲课程主要内容 1概述251指令系统的寻址方式351的指令系统及一般说明3 1数据传送类3 2算数操作类3 3逻辑运算类3 4控制转移类3 5位操作类 MCS 51单片机的指令系统 3 51指令的概述 51共有指令111条字节 单字节指令49条双字节指令45条三字节指令17条执行周期 单机器周期指令64条双机器周期指令45条4机器周期指令2条 4 51指令的概述 汇编指令的基本结构 标号 操作码助记符 第1操作数 第2操作数 注释 Loop1 mova 0ffh 累加器A赋值为ff标号 表示该指令所在的符号地址 一般由字母

2、和数字组成 第一位为字母 其余位为字母 数字任选 操作码助记符 第1操作数和第2操作数 指令的核心部分 对于某些指令可能不存在完整的两个操作数 注释 是由用户加入的文本 对汇编程序不起任何作用 只是方便阅读 第1操作数又称目的操作数 第2操作数又称源操作数 51不区分大小写 5 51指令的概述 汇编语言与机器语言 机器码 CPU只能执行机器语言 由8位二进制代码组成 分为1字节 2字节 3字节 例如 RET22HMOVA 0fh74H0FHMOV74H 0BH75H74H0BH汇编程序汇编语言机器语言反汇编程序 6 MCS 51的寻址方式 寻址方式是指寻找 确定参与操作的数据的地址的方式 包括

3、 1 寄存器寻址2 立即寻址3 直接寻址4 寄存器间接寻址5 基址寄存器加变址寄存器间接寻址 7 MCS 51的寻址方式 1 寄存器寻址可用于访问选定寄存器区的8个工作寄存器R0 R7 A B DPTR Cy等 MOVA R12 立即寻址指令中的第二操作数为立即数 51指令中的立即数应冠以前缀 且若立即数的首位为A F 前面还要加零 MOVA 40HmovA 0B2h 8 MCS 51的寻址方式 3 直接寻址用于访问内部RAM SFR 是访问SFR的主要方法 访问低128字节RAM时 MOVA 40H访问SFR时 MOVA 90H也可写为MOVA P14 寄存器间接寻址用于访问内部RAM和外部

4、数据区 包括52系列微控制器的高128字节RAM 只有R0 R1可以作为间址寄存器 访问低128字节RAM时 MOVR0 40HMOVA R0访问高128字节RAM时 MOVR0 90HMOVA R05 基址寄存器加变址寄存器间接寻址用于访问程序存储器的一个单元 该单元的地址是基址寄存器 DPTR或PC 的内容与变址寄存器A的内容之和 MOVDPTR 0400HMOVA 05HMOVCA A DPTR 9 51指令系统及一般说明 分类数据传送类算数操作类逻辑运算类控制转移类位操作类 10 51指令系统及一般说明 指令介绍中符号的说明 Rn 当前工作寄存器区中R0 R7Ri 当前工作寄存器区中的

5、R0 R1Direct 直接地址 data 指令中的常数 8位或16位 Dptr 数据指针 间接寻址前缀 X x中的内容 20h x 在间接寻址中 由间址寄存器寻址的单元中的内容 R0 若R0 20H 则 R0 表示 20H 11 3 1数据传送类 以累加器为目的操作数的指令以Rn为目的操作数的指令以直接地址为目的操作数的指令以寄存器间接地址为目的操作数的指令16位数据传送堆栈操作指令累加器与外部数据存储器传送指令查表指令字节交换指令半字节交换指令 12 3 1数据传送类 Mova Rn 以累加器为目的MovRn 0A0h 以Rn为目的操作数Mov40H Ri 以直接地址为目的操作数Mov R

6、i 0B0h 以寄存器间接地址为目的操作数Movdptr 2000hPushpopdirect sp 60h a 30h b 70hPusha sp 1 61h sp a 61hPushb sp 1 62h sp b 62hPopb sp b sp 1 sp 61hPopa sp a sp 1 sp 60h 13 3 1数据传送类 A与外部数据存储器传送Movxa dptrMovxa RiMovx dptr aMovx Ri a例 Movdptr 1000hMova 55hMovx dptr a 14 3 1数据传送类 查表指令Movca a pc 单字节 若程序中这指令所在的地址为1000h

7、 这是一条单字节指令 CPU执行此条指令时 pc 1001 假定此时a 30h 那么 程序的执行结果 是将程序存储器1031H中内容 读入a中 只能查该指令后面256单元 且表格只能为一段程序所用Movca a dptr若dptr 8100h a 40h执行结果 将程序存储器地址为8140h中内容读入a 15 3 1数据传送类 字节交换指令 将累加器内容与源操作数内容相互交换Xcha RnXcha 40h 直接地址 Xcha RiXcha R7若a 55h R7 66h 指令执行结果a 66h R7 55h半字节交换 累加器与内部RAM低4位交换Xchda RiXchda R0若a 59h R

8、0 60h 60h 3eh 执行结果a 5eh 60h 39h 16 3 2算数操作类 加法指令带进位的加法指令增量指令十进制调整指令带进位的减法指令减一指令乘法指令除法指令 增量指令与减一指令不影响PSW中标志位 17 3 2算数操作类 18 3 2算数操作类 加法指令Adda Rnadda directadda Riadda data将源操作数内容与A内容相加 结果存入A 如果位7有进位输出 则置1Cy位 否则清零 如果位3有进位输出 则置1Ac位 否则清零 如果位6有进位而位7没有进位 或者位7有进位而位6没有 则置位溢出标志位OV 否则对溢出标志位清零 19 3 2算数操作类 例 A

9、53H R0 FCH执行指令 ADDA R0 20 3 2算数操作类 21 3 2算数操作类 带进位加法指令Addca Rnaddca directaddca Riaddca data同时把加数 A 进位标志位Cy的内容相加 结果存入累加器A中 对标志位的影响同ADD 22 3 2算数操作类 例 A 85H 20H FFH Cy 1执行指令 ADDCA 20H 23 3 2算数操作类 增量指令IncaincRnIncdirectinc RiIncdptr对变量进行加1操作 不影响标志位 若原变量中内容为FFH则程序执行后变量变为00H 24 3 2算数操作类 十进制调整DAa应用背景 1 该指

10、令执行前 一般有一条加法指令 2 加法指令中的两个加数 应该是用压缩BCD码表示的十进制数 计算结果 和 存放在A中 3 执行完DA指令后 A中存放的数是两个加数的十进制和 也使用压缩BCD码表示 若 A 56h R5 67hADDA R5DAA结果 A 23 Cy 1 25 3 2算数操作类 带进位的减法指令SUBBA RnSUBBA directSUBBA RiSUBBA data从累加器A中减去源操作数内容和进位标志 结果存入A 如果位7有借位 则置1Cy位 否则清零 如果位3有借位 则置1Ac位 否则清零 如果位6有借位而位7没有借位 或者位7有借位而位6没有 则置位溢出标志位OV 否

11、则对溢出标志位清零 26 3 2算数操作类 27 3 2算数操作类 减1指令DECADECRnDECdirectDEC Ri功能 指令中的变量减1 不影响标志位 若变量初始值为00H 则指令执行后变为FFH MOV40H 0FFHDEC40H执行结果 40H FEH 28 3 2算数操作类 乘法指令MULAB将A与B中的8位整数相乘 其16位积的低8位放在A中 高8位放在B中 如果积大于255 则置位OV 否则清零 Cy总是0 除法指令DIVABA除以B 商放在A中 余数放在B中 清Cy OV 如果除数为0 则结果A B中内容不定 置位OV 29 3 3逻辑运算指令 清零与取反CLRCPL左移

12、RLRLC右移RRRRC累加器半字节交换SWAP逻辑与 或 异或ANLORLXRL 30 3 3逻辑运算指令 清零与取反CLRA A清零CPLA 按位取反左移RLA A中内容左移一位 位7移入位0RLCA A中内容及进位标志位Cy一起左移 位7移入Cy Cy位移入位0 31 3 3逻辑运算指令 右移RRA A中内容右移一位 位0移入位7 RRCA A中内容及进位标志位Cy一起右移 位0移入Cy Cy位移入位7 累加器半字节交换SWAPA例如 MOVA 0C5HSWAPA结果A 5CH 32 3 3逻辑运算指令 与 或 异或ANLORLXRLANLA R0ORLA R0XRL40H 40H 运算

13、结果存入第一操作数中 支持寄存器寻址 直接寻址 寄存器间接寻址和立即寻址方式 33 3 4控制转移类指令 长跳转指令Ljmpaddr16相对跳转指令Sjmprel 双字节指令 间接跳转指令Jmp a dptr 34 3 4控制转移类指令 条件转移指令 依据某种条件决定是否跳转 条件不满足 程序将顺序执行 jzrel A为零则转移Jnzrel A不为零则转移rel表示跳转范围 127 128 字节 比较不相等转移 比较前面两个操作数的大小 如果不相等 发生跳转 Cjnea data relcjnea direct relcjneRn data relcjne Ri data rel如果第1操作数

14、小于第2操作数 则置位进位标志 否则清零 不影响任何一个操作数的内容 35 3 4控制转移类指令 减一不为零转移指令djnzRn reldjnzdirect rel将源操作数减一不为零则转移 空操作指令nop只执行pc 1操作 cpu等待一个机器周期 36 3 4控制转移类指令 调用子程序指令Lcalladdr16无条件调用位于指定地址的子程序 子程序返回指令ret中断子程序返回指令reti 37 3 5位操作指令 数据位传送Movc bitmovbit c bit为位地址位变量修改ClrcclrbitcplccplbitSetbcsetbbit位变量的逻辑操作 与 或Anlc bitanlc bitOrlc bitorlc bit 38 3 5位操作指令 条件转移类Jcrel Cy 1转移jncrel Cy为0转移Jbbit rel 寻址位为1转移jnbbit rel 寻址位为0转移Jbcbit rel 寻址位为1转移并将寻址位清零 39 END

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

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