单片机实验二 汇编程序设计初步.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告2 汇编程序设计初步 姓名: 学号: 学院:光电与信息工程学院 班级:2012级网络工程2班 实验目的 熟悉 51 单片机的指令系统,掌握汇编语言程序的设计方法,掌 握开发的调试方法。 实验环境 1、PC 机 1 台 2、仿真器软件 伟福6000 内容与步骤 (1)多字节加法 (2)多字节减法 (3)多字节乘法 (4)多字节除法 过程分析 (1)多字节加法 计算123456H+789ABCH,将结果存放在内部RAM 22H(高8位),21H(中8位)和20H(低8位) 方法一: clr C ;(CY)-0 mov a,#56h ; (a)=56h addc a,#0bch ; (a)-(a)+0bcH+(CY) mov 20h,a ;(20h)-(a) mov a,#34h ; (a)=34h addc a,#9ah ; (a)-(a)+9aH+(CY) mov 21h,a ; (21h)-(a) mov a,#12h ; (a)=12h addc a,#78h ; (a)-(a)+78H+(CY) mov 22h,a ; (22h)-(a) 截图: 内部ROM的20h,21h,22h都默认为0 进位标志位置0 执行完第一次ADDC并将值赋给20H单元后 执行完第二次ADDC并将值赋给21H单元后 执行完第三次ADDC并将值赋给22H单元后 分析:多字节加法课本有2字节的,我写的是3字节加法,其他更高的字节可以依次类推,首先都要将进位标志位置0,依次分字节进行带进位的ADDC加法运算并将结果存放在指定的地址位置中,在执行过程中观察累加器A,程序状态寄存器PSW中CY 、AC、 OV 、P的变化。 方法二: mov r0,#20h ;(r0)-22h mov r1,#28h ;(r1)-32h mov r2,#03h ;(r2)-3h clr c loop1: mov a,@r0 ;(a)-((r0)) addc a,@r1 ;(a)-((r1))+(a)+(CY) mov @r0,a ;(r0)-(a) loop2: inc r0 ;r0-(r0)+1; inc r1 ;r1-(r1)+1; mov a,r0 ;(a)-((r0)) djnz r2,loop1 ; r2-(r2)-1,若r2=0,顺序执行,否则转移 sjmp $ end 截图: 内部ROM的20h,21h,22h,28h,29h,2ah分别初始化 执行第一次循环: 执行第二次循环 执行第三次循环: 分析:此代码可以实现对任意n字节的加法运算。 本例中针对3字节来模拟,其他字节只要改变R2的值即可,比如四字节则R2=4。首先在两个加数从低位到高位依次存放到内部ROM的单元,在利用寄存器R0、R1来存放数据的地址,利用寄存器R2来进行循环次数的控制,使R0,R1所指向的内存地址逐次加1,实现对应位置的加法,结果再存放到指定的从20H开始的位置。 (2)多字节减法 计算34AB12H-1278CDH,将结果存放在内部RAM 22H(高8位),21H(中8位)和20H(低8位) 方法一: clr CY ;(CY)-0 mov a,#12h ;(a)=12h subb a,#0cdh ;(a)-(a)-0cdH-(CY) mov 20h,a ;(20h)-(a) mov a,#0abh ;(a)=0abh subb a,#78h ;(a)-(a)-78H-(CY) mov 21h,a ;(21h)-(a) mov a,#34h ;(a)=34h subb a,#12h ;(a)-(a)-12H-(CY) mov 22h,a ;(22h)-(a) 截图: 内部ROM的20h,21h,22h都默认为0 进位标志位置0 执行完第一次SUBB并将值赋给20H单元后 执行完第二次SUBB并将值赋给21H单元后 执行完第三次SUBB并将值赋给22H单元后 分析:多字节减法课本有1字节的,我写的是3字节减法,其他更高的字节可以依次类推,首先都要将进位标志位CY置0,因为MCS-51中只有带借位的减法指令。依次分字节进行带进位的SUBB减法运算并将结果存放在指定的地址位置中,在执行过程中观察累加器A,程序状态寄存器PSW中CY 、AC、 OV 、P的变化。 方法二: mov r0,#20h ;(r0)-22h

文档评论(0)

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

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

1亿VIP精品文档

相关文档