西南科技大学单片机原理实实验二和代码.docVIP

西南科技大学单片机原理实实验二和代码.doc

  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文档。上传文档
查看更多
西南科技大学单片机原理实实验二和代码

实验二 算术运算程序设计实验 实验目的 熟悉MCS-51指令系统中的指令,掌握汇编语言基本程序结构的实现方法,理解常用算术运算程序的算法,学习调试程序的技巧。 实验设备 Keil C单片机程序开发软件。 实验内容和步骤 内容: 设计并调试一个双字节无符号数乘法子程序。 实验程序: 功能: 双字节无符号数乘法子程序。 入口参数: 被乘数放在R7(高)和R6(低); 乘数放在R5(高)和R4(低); 积(片内RAM中的连续4字节)的首地址放在R0中。 设计思路: 图2.1 双字节无符号乘法示意图积R6 ? R4 图2.1 双字节无符号乘法示意图 积 R6 ? R4 B A R5 R4 R6 ? R5 R7 ? R5 R7 ? R4 + ? 低字节 高字节 R7 R6 B A B A B A M1 M0 M3 M2 MCS-51指令集中乘法指令的结果是固定存放在A和B中的,因此每次乘法操作后都须将结果保存在积中。所以应首先将积的初值置0且在每次乘法指令结束后需要进行2次加操作,分别将A和B加到积的对应位置(注意:在两次加法之间要考虑进位)。 预习: 编写好实验程序(子程序名为_dwMUL)。 根据编写的程序和实验步骤的要求制定调试仿真的操作方案。 步骤: 在Keil C中创建一个新工程,新工程保存为S: \ STUDY \ Kiel \ Ex02\Ex02.uv2,然后选择单片机型号为Generic中的8051。 设置工程选项(操作:鼠标点击选中Project Window中的Target 1,然后选择 Project??Option for Target ‘Target 1’)。将工程选项设置如下: Target: Xtal= 12 MHz Debug: Use Simulator 创建新文件并输入编写的实验程序,然后保存在与工程相同的文件夹中(文件名为Ex02_1 . ASM),最后将其加入到工程中并编译。 重复任意设定乘数与被乘数,调试运行,检查结果,确认程序的正确性(若错误,则修改直至正确)。 [选做] 编写另一子程序,通过调用该双字节无符号数乘法子程序实现双字节有符号数乘法(子程序名为_nMUL,文件名为Ex02_2 . ASM)。 实验报告要求 工整书写实验程序并画出其流程图。 根据实验结果填写下表。 表2.4 双字节乘法调试结果表 次数 被乘数 乘数 积 R7 R6 R5 R4 M3 M2 M1 M0 1 2 … 代码: ;--------------INITIAL--------------------- MOV R7, #00H ;HIGH MOV R6, #05H ;LOW MOV R5, #00H ;HIGH MOV R4, #05H ;LOW MOV R0, #30H ;RESULT ACALL _dwMUL MOV B, @R0 MOV R1, B DEC R0 MOV B, @R0 MOV R2, B DEC R0 MOV B, @R0 MOV R3, B DEC R0 MOV B, @R0 MOV R4, B RET ;--------------FUNCTION--------------------- ;子程序名: _dwMUL ;子程序功能: 双字节无符号数乘法子程序 ;入口参数: 被乘数放在R7(高)和R6(低) ; 乘数放在R5(高)和R4(低) ; 积(片内RAM中的连续4字节)的首地址放在R0中 _dwMUL: PUSH ACC PUSH B MOV B, R3 PUSH B MOV R3, #04H ;循环次数 MOV B, R0 ;保存R0值 INIT: MOV @R0, #00H INC R0 DJNZ R3, INIT ;减1不为0则跳转 MOV R0, B ;恢复R0值 MM: MOV A, R4 ;R6 x R4 MOV B, R6 MUL AB ACALL ADDM1 MOV A, R4 ;R7 x R4 MOV B, R7 MUL AB ACALL ADDM1 MOV A, R5 ;R6 x R5 MOV B, R6 MUL AB DEC R0 ACALL ADDM1 MOV A, R5 ;R7 x R5 MOV B, R7 MUL AB ACALL ADDM1 //恢复 POP B MOV R3, B POP B POP ACC RET ADDM1: ADD A, @R0 ; 加部分积 MOV @R0, A MOV A, B INC R0 ADDC A, @R0 MOV @R0, A INC R0 MOV A, @R0 A

文档评论(0)

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

教师资格证持证人

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

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档