微机原理实验报告4..doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理实验报告4.

实 验 报 告 课程名称:《微机原理》实验 第3次实验 实验名称:宏命令与子程序的区别 实验时间:2015年10月13日 实验地点:XXXXXX组号__________ 学号:XXXX 姓名:XXX 指导老师:XX 评定成绩:___________ 微机原理实验4 南京大学工程管理学院 一、实验设备: 计算机 二、实验用时: 4小时 三、实验内容: 单步运行实例函数NO3_Mpy_8,了解单字节无符号数乘法的实现方法。 编写子程序Mpy_16,实现双字节无符号数乘法。自行定义变量,其中: ACCALO ;存放乘数低 8 位 ACCAHI ;存放乘数高 8 位 ACCBLO ;存放被乘数低 8 位和乘积第 16~23 位 ACCBHI ;存放被乘数高 8 位和乘积第 24~31 位 ACCCLO ;存放乘积第 0~7 位 ACCCHI ;存放乘积第 8~15 位 编写Main主程序,使用乘数 0x4015和被乘数0x3321对编写的子程序进行测试,结果应为0x0CCC71B5。 编写宏命令Mpy_16,实现单字节无符号数乘法。编写Main主程序调用宏命令并对运算结果进行测试。 使用反汇编工具Disassembly Listing单步运行程序,观察子程序与宏命令的差异。 四、实验报告要求: 程序框图和源程序清单。 分析宏扩展过程,说明宏与子程序的差别。 五、实验结果: 1、程序框图 (1)子程序Mpy_16 否 是 否 是 (2)宏命令Mpy_16 否 是 否 是 2、源程序清单 (1)子程序Mpy_16 list p=16f877A ; list directive to define processor #include p16f877A.inc ; processor specific variable definitions __CONFIG _CP_OFF _WDT_OFF _BODEN_OFF _PWRTE_OFF _HS_OSC _WRT_OFF _LVP_OFF _CPD_OFF ACCALO EQU 0x20 ;存放加数低8位 ACCAHI EQU 0x21 ;存放加数高8位 ACCBLO EQU 0x22 ;存放被加数低8位 ACCBHI EQU 0x23 ;存放被加数高8位 ACCCLO EQU 0x24; ACCCHI EQU 0x25; MDLO EQU 0x26; MDHI EQU 0x27; TEMP EQU 0x28 ;临时寄存器 ; 双 字 节 加 法 子 程序,入口地址ACCB + ACCA,出口地址ACC ORG 0x0000 ; 复位入口地址 nop ; 兼容ICD调试工具,必须加nop goto Main ; 跳转至Main函数 Main MOVLW 0x15; MOVWF ACCALO; MOVLW 0x40; MOVWF ACCAHI; MOVLW 0x21; MOVWF ACCBLO; MOVLW 0x33; MOVWF ACCBHI; CALL MPY_16; NOP; GOTO $; ORG 0x0100 MPY_16 CALL SETUP ; MLOOP BCF STATUS, C ; 清进位位 RRF MDHI ; MD 右移 RRF MDLO; BTFSC STATUS, C ;判断是否需要相加 CALL Add_16 ; 加乘数至 MB RRF ACCBHI ; 右移部分乘积 RRF ACCBLO; RRF ACCCHI; RRF A

文档评论(0)

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

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

1亿VIP精品文档

相关文档