指令系统及程序设计.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
指令系统及程序设计

?1、用数据传送指令完成如下功能: (1)工作寄存器R2的内容送给R3; MOV A,R2 ?????? MOV R3,A; 两个工作寄存器之间不能直接进行数据传送 (2)内部RAM20H单元的内容送给内部RAM30H单元; ?? MOV 30H,20H; 两个直接地址之间可以直接进行数据传送 (3)内部RAM20H单元的内容送给外部RAM20H单元; ?? MOV? R1,#20H ?????? MOV? A,@R1 ?????? MOVX @R1,A; 内部RAM中的数据必须要先送到累加器A再由A送出到外部RAM去 ??(4)外部RAM20H单元的内容送给外部RAM2000H单元; ?? MOV RI,#20H ?????? MOV DPTR,#2000H ?????? MOVX A,@R1 ?????? MOVX @DPTR,A; 两个外部RAM单元也不能直接进行数据传递,必须要先将外部RAM一个单元数据送给A再由A到另一个外部RAM单元中去 ??(5)ROM30H单元的内容送给内部RAM30H单元; ?? MOV DPTR,#0030H ?????? MOV A,#00H ?????? MOVC A,@A+DPTR ?????? MOV 30H,A 要先将ROM指定单元数据送给A再由A到内部RAM指定单元中 ?? (6)ROM3000H单元的内容送给外部RAM2000H单元; MOV DPTR,#3000H ?????? MOV A,#00H ?????? MOVC A,@A+DPTR ?????? MOV DPTR,#2000H ?????? MOVX @DPTR,A 要先将ROM指定单元数据送给A再由A到外部RAM指定单元中去 小结: 注意数据传送类指令有三种:MOV(内部数据传送)、MOVC(从程序存储器中取数)、MOVX(累加器A与外部数据存储器间进行数据传递),要注意区分三种指令,不要混淆; 外部数据存储器(外部RAM)只能用寄存器间接寻址方式访问,且只能与累加器A进行数据传送; 外部数据存储器(外部RAM)使用寄存器间接寻址的地址指针选取原则:地址在8位以内(00H-FFH)可以使用R0、R1,也可以使用DPTR;地址超过8位,只能使用DPTR; 内部数据存储器(内部RAM)低128B可以用直接寻址方式也可以寄存器间接寻址方式访问;内部数据存储器高128B(仅52子系列有)只能用寄存器间接寻址方式访问,地址指针选取R0或R1; 程序存储器(ROM)是只读的,从ROM中读取数据用MOVC指令,对应变址寻址方式,要预先在A和DPTR(MOVC A,@A+DPTR)或A(MOVC A,@A+PC)中设好相应的值; ?2、外部RAM20H单元的内容和外部RAM21H单元的内容相乘,结果低八位送外部RAM22H单元,高八位送外部RAM23H单元 MOV R1,#20H ?? MOVX A,@R1 ?? MOV B,A ?? INC R1 ?? MOVX A,@R1 ?? MUL AB ?? INC R1 ?? MOVX @R1,A ?? INC R1 ?? MOV A,B ?? MOVX @R1,A 外部数据存储器(外部RAM)只能用寄存器间接寻址方式访问,且只能与累加器A进行数据传送;如MOVX B,@DPTR是非法指令。 3、完成两个三字节二进制数的加法:第一个数存在内部RAM的30H、31H、32H(32H为最低字节)单元,第二个数存在内部RAM的40H、41H、42H(42H为最低字节)单元,结果存入内部RAM的 30H、31H、32H(32H为最低字节)单元。 ? ORG 0000H ?????? SJMP MAIN ?????? ORG 0030H ?MAIN: CLR C ?????? MOV R2,#3 ?LOOP: MOV R0,#32H ?????? MOV R1,#42H ?????? MOV A,R0 ?????? ADDC A,R1 ?????? MOV R0,A ?????? DEC R0 ?????? DEC R1 ?????? DJNZ R2,LOOP ?????? SJMP $ 注意三字节数加法,高字节做加法时要考虑到低字节所产生的进位,所以用ADDC指令。 4、用逻辑运算指令完成如下功能: (1)内部RAM20H单元数的低三位清零,其余位保持不变; ANL 20H,#0F8H; ??(2)内部RAM20H单元数的高两位置1 ,其余位保持不变; ORL 20H,#0C0H ?(3)内部RAM20H单元数的高两位取反,其余位保持不变; ? XRL 20H,#0C0H ?(4)内部RAM20H单元数的所有位取反; XRL 20H,#0F

文档评论(0)

zhanghc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档