MCS51单片机指令系统数据传送类指令.ppt

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.3.1 数据传送类指令(29条) 对PSW的影响 1. 访问片内数据存储器的一般数据传送指令 该类指令的功能是实现数在片内RAM单元之间、寄存器之间、寄存器与RAM单元之间的传送。所有指令具有统一的格式,其格式如下: MOV 目的操作数,源操作数;目的操作数单元←源操作数(或单元) 操作码助记符都是MOV,目的操作数和源操作数不同寻址方式的组合就派生出该类的全部指令。因此,记忆这类指令的关键在于掌握两个操作数的各种寻址方式的组合关系。 (1) 16位传送指令 (2) 8位传送指令 1) 以A为目的操作数的指令 2) 以Rn 为目的操作数的指令 3) 以direct 为目的操作数的指令 4) 以@Ri为目的操作数的指令 访问片内RAM的一般传送指令操作关系图 例 设内部RAM(30H)=40H,(40H)=10H,(10H)=00H(P1)=0CAH,分析以下程序执行后各单元及寄存器、P2口的内容。 MOV R0,#30H MOV A,@R0 MOV R1,A MOV B,@R1 MOV @R1,P1 MOV P2,P1 MOV 10H,#20H 2. 特殊传送指令 访问程序存储器的数据传送指令又称作查表指令,采用基址寄存器加变址寄存器间接寻址方式,把程序存储器中存放的表格数据读出,传送到累加器A。共有如下两条单字节指令,指令操作码助记符为MOVC。 2. 特殊传送指令 前一条指令采用DPTR作基址寄存器,因此可以很方便地把一个16位地址送到DPTR,实现在整个64 KB程序存储器单元到累加器A的数据传送。即数据表格可以存放在程序存储器64 KB地址范围的任何地方。 后一条指令以PC作为基址寄存器,CPU取完该指令操作码时PC会自动加1,指向下一条指令的第一个字节地址,即此时是用(PC)+1作为基址的。另外,由于累加器A中的内容为8位无符号数,这就使得本指令查表范围只能在256个字节范围内(即(PC)+1H~(PC)+100H),使表格地址空间分配受到限制。同时编程时还需要进行偏移量的计算,即MOVC A,@A+PC指令所在地址与表格存放首地址间的距离字节数的计算,并需要一条加法指令进行地址调整。偏移量计算公式为: 偏移量 = 表首地址-(MOVC指令所在地址+1) 例 从片外程序存储器2000H单元开始存放0~9的平方值,以DPTR作为基址寄存器进行查表得3的平方值。 如果用以DPTR为基址寄存器 的查表指令,其程序如下: MOV DPTR, #2000H;置表首地址 MOV A, #03H MOVC A, @A+DPTR 设MOVC指令所在地址(PC)=1FFDH,则偏移量=2000H-(1FFDH+1)=02H。 相应的程序如下: MOV A,#03H ;(A)←03H ADD A,#02H ;用加法指令 进行地址调整 MOVC A,@A+PC ;(A)←(A+PC+1) 执行结果为:(PC)=1FFEH,(A)=09。 (2) 读、写片外RAM 指令 MCS-51单片机CPU对片外扩展的数据存储器RAM或I/O口进行数据传送,必须采用寄存器间接寻址的方法,通过累加器A来完成。这类指令共有以下4条单字节指令,指令操作码助记符都为MOVX。 例 设外部RAM(0203H)= 0FFH,分析以下指令执行后的结果。 MOV DPTR,#0203H MOVX A,@DPTR MOV 30H,A MOV A,#0FH MOVX @DPTR,A 执行结果为:(DPTR)=0203H,(30H)=FFH,(0203H)=(A)=0FH。 (3) 堆栈操作指令 堆栈操作有进栈和出栈,即压入和弹出数据,常用于保存或恢复现场。进栈指令用于保存片内RAM单元(低128字节)或特殊功能寄存器SFR的内容;出栈指令用于恢复片内RAM单元(低128字节)或特殊功能寄存器SFR的内容。 (4) 数据交换指令 数据传送指令一般都是将操作数自源地址单元传送到目的地址单元,指令执行后,源地址单元的操作数不变,目的地址单元的操作数则修改为源地址单元的操作数。交换指令数据作双向传送,涉及传送的双方互为源地址、目的地址,指令执行后每方的操作数都修改为另一方的操作数。数据交换指令共有如下5条指令: 例 若(R0)=67H,(A)=45H。 执行 XCH A,R0 指令 作业 1变址寻址和相对寻址中的地址偏移量有何异同? 2.写出能完成下列数据传送的指令 R1的内容传送到R0 内部RAM

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档