MCS-51单片机指令系统-数据传送类指令.ppt_第1页
MCS-51单片机指令系统-数据传送类指令.ppt_第2页
MCS-51单片机指令系统-数据传送类指令.ppt_第3页
MCS-51单片机指令系统-数据传送类指令.ppt_第4页
MCS-51单片机指令系统-数据传送类指令.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3 3 1数据传送类指令 29条 对PSW的影响 传送类指令分成两大类 1 MOV 一般传送2 非MOV 特殊传送 如 MOVC MOVX PUSH POP XCH XCHD及SWAP 3 3MCS 51指令系统 1 访问片内数据存储器的一般数据传送指令该类指令的功能是实现数在片内RAM单元之间 寄存器之间 寄存器与RAM单元之间的传送 所有指令具有统一的格式 其格式如下 MOV 目的操作数单元 源操作数 或单元 操作码助记符都是 MOV 目的操作数和源操作数不同寻址方式的组合就派生出该类的全部指令 因此 记忆这类指令的关键在于掌握两个操作数的各种寻址方式的组合关系 1 16位传送指令 将源操作数data16 通常是常数 送入目的操作数DPTR中 例MOVDPTR 5678H 1 一般传送指令 结果为 DPH 56H DPL 78H MOVDPTR data16 2 8位传送指令 注 1 data 立即数 不能用作目的操作数 2 源操作数与目的操作数不能相同 除direct外 3 寄存器寻址与寄存器及其间址间不能相互传送 传送关系 目的操作数 源操作数 A A Rn Rn direct1 direct2 Ri Ri data 1 以A为目的操作数的指令 例 若 R1 30H 30H 68H执行MOVA R1 MOVA Rn direct Ri data 结果 A 68H 2 以Rn为目的操作数的指令 例 若 60H 30H执行MOVR6 60H MOVRn A direct data 结果 R6 30H 3 以direct为目的操作数的指令 例 若 R0 30H 30H 25H执行MOV40H R0指令 结果 40H 25H MOVdirect Rn direct1 Ri data A 4 以 Ri为目的操作数的指令 例若 R1 56H A 35H执行MOV R1 A指令 结果 56H 35H MOV Ri A direct data 访问片内RAM的一般传送指令操作关系图 累加器A Direct直接地址 Rn寄存器 Data立即数 Ri间址 例设内部RAM 30H 40H 40H 10H 10H 00H P1 0CAH 分析以下程序执行后各单元及寄存器 P2口的内容 MOVR0 30HMOVA R0MOVR1 AMOVB R1MOV R1 P1MOVP2 P1MOV10H 20H R0 30H A 40H R1 40H B 10H 40H 0CAH P2 0CAH 10H 20H 执行上述指令后的结果为 R0 30H R1 A 40H B 10H 40H P1 P2 CAH 10H 20H 2 特殊传送指令 访问程序存储器的数据传送指令又称作查表指令 采用基址寄存器加变址寄存器间接寻址方式 把程序存储器中存放的表格数据读出 传送到累加器A 共有如下两条单字节指令 指令操作码助记符为MOVC 1 ROM查表指令 2 MOVCA A PC以PC的当前值与偏移量之和作为程序存储器地址 将该地址单元的内容传送到A 指令执行后PC的内容不变 2 特殊传送指令 1 MOVCA A DPTR以DPTR与偏移量之和作为程序存储器地址 将该地址单元的内容传送到A 指令执行后DPTR的内容不变 前一条指令采用DPTR作基址寄存器 因此可以很方便地把一个16位地址送到DPTR 实现在整个64KB程序存储器单元到累加器A的数据传送 即数据表格可以存放在程序存储器64KB地址范围的任何地方 后一条指令以PC作为基址寄存器 CPU取完该指令操作码时PC会自动加1 指向下一条指令的第一个字节地址 即此时是用 PC 1作为基址的 另外 由于累加器A中的内容为8位无符号数 这就使得本指令查表范围只能在256个字节范围内 即 PC 1H PC 100H 使表格地址空间分配受到限制 同时编程时还需要进行偏移量的计算 即MOVCA A PC指令所在地址与表格存放首地址间的距离字节数的计算 并需要一条加法指令进行地址调整 偏移量计算公式为 偏移量 表首地址 MOVC指令所在地址 1 例从片外程序存储器2000H单元开始存放0 9的平方值 以DPTR作为基址寄存器进行查表得3的平方值 如果用以DPTR为基址寄存器的查表指令 其程序如下 MOVDPTR 2000H 置表首地址MOVA 03HMOVCA A DPTR 0149162536496481 2000H 2001H 2009H 1FFDH 1FFFH 1FFEH 设MOVC指令所在地址 PC 1FFDH 则偏移量 2000H 1FFDH 1 02H 相应的程序如下 MOVA 03H A 03HADDA 02H 用加法指令进行地址调整MOVCA A PC A A PC 1 执行结果为 PC 1FFEH A 09 0149162536496481 2000H 2001H 2009H 1FFDH 1FFFH 83H 1FFEH 2 读 写片外RAM指令 MCS 51单片机CPU对片外扩展的数据存储器RAM或I O口进行数据传送 必须采用寄存器间接寻址的方法 通过累加器A来完成 这类指令共有以下 条单字节指令 指令操作码助记符都为MOVX 2 读 写片外RAM指令 1 读片外RAMMOVXA DPTRMOVXA Ri 2 写片外RAMMOVX DPTR AMOVX Ri A 例设外部RAM 0203H 0FFH 分析以下指令执行后的结果 MOVDPTR 0203HMOVXA DPTRMOV30H AMOVA 0FHMOVX DPTR A执行结果为 DPTR 0203H 30H FFH 0203H A 0FH 3 堆栈操作指令 堆栈操作有进栈和出栈 即压入和弹出数据 常用于保存或恢复现场 进栈指令用于保存片内RAM单元 低128字节 或特殊功能寄存器SFR的内容 出栈指令用于恢复片内RAM单元 低128字节 或特殊功能寄存器SFR的内容 3 堆栈操作指令 3 操作指令PUSHdirectPOPdirect 1 原则 向地址高端生长 后进先出 2 SP 指向栈顶 活动端 复位值07H 例若 SP 07H 40H 88H执行PUSH40H指令 结果 SP 08H 08H 88H 4 数据交换指令 数据传送指令一般都是将操作数自源地址单元传送到目的地址单元 指令执行后 源地址单元的操作数不变 目的地址单元的操作数则修改为源地址单元的操作数 交换指令数据作双向传送 涉及传送的双方互为源地址 目的地址 指令执行后每方的操作数都修改为另一方的操作数 数据交换指令共有如下5条指令 4 数据交换指令 例若 R0 67H A 45H 执行XCHA R0指令 交换类指令 传送是双向的 1 字节交换指令 XCHA Rn direct Ri 结果 A 67H R0 45H 2 半字节交换指令 例 若 R0 30H 30H 67H A 20H 执行XCHDA R0后 A 27H 30H 60H XCHDA RiSWAPA 例若 A 30H 执行SWAPA后 A 03H 练习题 试按下列要求传送数据1 将R5中的数据传送到50H 2 将R7中的数据传送到R6 3 将立即数40H传送到以R0中内容为地址的存储单元中 4 将片外RAM50H中的数据传送到片内RAM40H单元中 5 将R1中的数据传送到以R0中内容为地址的存储单元中 MOV50H R5 MOVA R7MOVR6 A MOVA 40HMOV R0 A MOVR0 50HMOVXA R0MOV40H A MOVA R1MOV R0 A 表3 2数据传送类指令一览表 表3 2数据传送类指令一览表 续 作业 1变址寻址和相对寻址中的地址偏移量有何异同 2 写出能完成下列数据传送的指令R1的内容传送到R0内部RAM20H单元中的内容送到30H单元外部RAM2000H单元中的内容送到内部RAM20H单元外部ROM2000H单元中的内容送到内部RAM20H单元外部ROM2000H单元中的内容送到外部RAM3000H单元 3MOVDPTR 2000HMOVXA DPTRMOV

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论