




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳航空航天大学 课课 程程 设设 计计 报报 告告 课程设计名称 计算机组成原理课程设计计算机组成原理课程设计 课程设计题目 COP2000COP2000 实现补码两位乘法实现补码两位乘法 院 系 计算机学院 专 业 计算机科学与技术 嵌入式系统方向 班 级 94010106 学 号 2009040101181 姓 名 张驰 指导教师 杨华 完成日期 2012年1月14日 沈阳航空航天大学课程设计报告 I 目目 录录 第第 1 章章 总体设计方案总体设计方案 1 1 1设计原理 1 1 2设计思路 1 1 3设计环境 2 第第 2 章章 详细设计方案详细设计方案 4 2 1 算法与程序的设计与实现 4 2 1 1 算法具体描述 4 2 2 流程图的设计与实现 5 2 2 1 流程图具体分析 5 第第 3 章章 程序调试与结果测试程序调试与结果测试 9 3 1 程序调试 9 3 2 程序测试及结果分析 9 参考文献参考文献 10 附附 录 源代码 录 源代码 11 沈阳航空航天大学课程设计报告 第 1 章 总体设计方案 1 第 1 章 总体设计方案 1 1设计原理设计原理 根据补码两位乘法运算规则是根据补码一位乘的规则 把比较 YnYn 1 的状 态应执行的操作和比较 Yn 1Yn 的状态应执行的操作合并成一部得出的 如下图是补码一位乘的运算规则 图图 1 11 1 BoothBooth 算法操作说明算法操作说明 例如 Yn 1YnYn 1 为 011 则第一步由 YnYn 1 11 得出只作右移 即 zi 补 2 第二步由 Yn 1Yn 01 得出需作 zi 2 x 补 2 的操作 可改为 zi 补 2 x 补 2 2 即最后结论为当 Yn 1YnYn 1 为 011 时 完成 zi 补 2 x 补 4 操作 同理 可分析其余 7 种情况 下图列出了补码两位乘的运算规则 判断位 Yn 1YnYn 1 操作内容 000 Zi 1 Zi 补 0 2 2 001 Zi 1 Zi 补 X 补 2 2 010 Zi 1 Zi 补 X 补 2 2 011 Zi 1 Zi 补 2 X 补 2 2 100 Zi 1 Zi 补 2 X 补 2 2 101 Zi 1 Zi 补 X 补 2 2 110 Zi 1 Zi 补 X 补 2 2 111 Zi 1 Zi 补 0 2 2 图图 1 21 2 BoothBooth 算法操作说明特殊表算法操作说明特殊表 沈阳航空航天大学课程设计报告 第 1 章 总体设计方案 2 1 2设计思设计思路路 1 构造补码两位乘的操作特殊表 因为补码两位乘的算法核心就是构造操作表从而程序能根据操作表的操作指 示来进行程序流程 构造特殊表就要先将 X 补 X 补 2 X 补 2 X 补 X 补 X 补 0 分别存贮到 91H 到 97H 存储单元中 90H 单元存入 0 2 乘数的处理 将乘数左移两位并存入 R2 3 运算并输出 根据乘数后两位及附加位来确定 R3 并通过 R3 间接访问特殊表 将访问的 数据作为加数与部分积相加 然后判断两次循环是否结束 如果两次运算循环结 束 则结束运算 否则将部分积与乘数同时右移两位再根据有效位来通过 R3 访 问特殊表 相加移位运算结束后再将部分积与乘数同时右移一位 将数据位置有 效 输出数据 4 实现方式 采用伟福 COP2000 实验仪软件的指令集编程实现补码两位乘的功能 1 3设计环境设计环境 利用伟福 COP2000 型计算机组成原理实验仪软件和计算机 在 COP2000 试 验仪软件上编程实现补码两位乘 伟福 COP2000 试验仪软件的指令集分为如下 大类 算术运算指令 逻辑运算指令 移位指令 数据传输指令 跳转指令 中 断返回指令 输入输出指令 伟福 COP2000 计算机组成原理实验仪软件截图如 1 2 所示 本程序所用到的相应的指令集 1 算术逻辑运算指令 ADD A R 将寄存器 R 的值加入累加器 A 中 ADD A II 立即数 II 加入累加器 A 中 SUB A II 从累加器中减去立即数后加入累加器 A 中 沈阳航空航天大学课程设计报告 第 1 章 总体设计方案 3 AND A R 累加器 A 与 寄存器 R 的值 OR A R 累加器 A 与 寄存器 R 的值 2 数据传送指令 MOV A R 将寄存器 R 的值送到累加器 A 中 MOV A MM 将存储器 MM 地址中的值送到累加器 A 中 MOV MM A 将累加器 A 中的值送到存储器 MM 地址中 MOV R A 将累加器 A 中的值送到寄存器 A 中 MOV R II 将立即数 II 送到寄存器 R 中 RR A 累加器右移指令 RL A 累加器左移指令 4 跳转指令 JC MM 若进位标志置 1 跳转到 MM 地址 JZ MM 若零标志位置 1 跳转到 MM 地址 JMP MM 跳转到 MM 如下为 COP2000 计算机组成原理实验软件截图 图图 1 3 伟福伟福 COP2000 计算机组成原理试验仪软件截图计算机组成原理试验仪软件截图 沈阳航空航天大学课程设计报告 第 2 章 详细设计方案 4 第 2 章 详细设计方案 2 1 算法与程序的设计与实现算法与程序的设计与实现 本课设采用伟福 COP2000 实验仪软件和计算机实现补码两位乘的功能 利 用伟福 COP2000 的指令集编程实现 2 1 1 算法具体描述算法具体描述 1 进行初始化 并且设置计数单元与建立特殊表 因为每次计算进行三 次移位 所以用 MOV A 03H 与 MOV 9AH A 来将循环次数存入内存单元 然后 再进行初始化操作 将存储部分积的 R1 置零 再将用来存储特殊表的 90H 97H 内存单元置零 接下来再通过输入的被乘数判断其正负 如果被乘数是负 在前 面两位加上 1 如果是整数则无需操作 直接构造特殊表 2 乘数处理 输入乘数后 将乘数移至最前端 执行 LOOP2 首先设置 移位次数 取出乘数后 判断乘数的后两位及附加位的值 根据这个偏移值访问 特殊表 进而确定加数 确定之后进行 部分积与加数相加得到新的部分积 得到结果后 判断总循 环是否结束 之后进行判断移位的操作 部分积的最高位如果是 1 移位后仍然 置 1 如果部分积得最低位如果是 1 乘数右移之后最高位置 1 3 运算并输出 根据乘数后两位及附加位来确定 R3 并通过 R3 间接访问 特殊表 将访问的数据作为加数与部分积相加 然后判断两次循环是否结束 如 果两次运算循环结束 则结束运算 否则将部分积与乘数同时右移两位再根据有 效位来通过 R3 访问特殊表 相加移位运算结束后再将部分积与乘数同时右移一 位 将数据位置有效 输出数据 沈阳航空航天大学课程设计报告 第 2 章 详细设计方案 5 2 2 流程图的设计与实现流程图的设计与实现 2 2 1 流程图具体分析流程图具体分析 1 构造特殊类 如图 2 2 1 图 2 2 1 存数流程图 图 2 2 1 构造特殊类流程图 开 始 输入被乘数 X 存入 R0 90H 存入 0 91H 存入 X 补 92H 存入 X 补 93H 存入 2 X 补 94H 存入 2 X 补 95H 存入 X 补 96H 存入 X 补 97H 存入 0 结束 沈阳航空航天大学课程设计报告 第 2 章 详细设计方案 6 2 乘数处理操作 如图 2 2 2 图 2 2 2 乘数处理流程图 开 始 输入乘数 Y 左移两位并输入 R2 结束 沈阳航空航天大学课程设计报告 第 2 章 详细设计方案 7 3 运算 如图 2 2 3 否 是 图 2 2 3运算流程图 开 始 根据乘数后两位及附加位 来确定 R3 并通过 R3 间 接访问特殊表 将访问到的数据作为加数 与部分积相加 判断两次循 环是否结束 结束 将部分积与乘数同时右移 两位 沈阳航空航天大学课程设计报告 第 2 章 详细设计方案 8 4 输出 如图 2 2 4 如图 2 2 4 输出流程图 开 始 将部分积与乘数同时右移一位 将数据位置有效 结束 沈阳航空航天大学课程设计报告 附录 9 第 3 章 程序调试与结果测试 3 1 程序调试程序调试 1 1 语法错误 语法错误 1 在执行带进位右移操作是 RRC A 在程序中对指令集了解不够充分 导 致无用右移指令 RR A 2 编程开始阶段 不熟悉指令集 执行把立即数放入累加器的操作 误 将 MOV A 0AH 用作 MOV A 0AH 2 2 逻辑错误 逻辑错误 1 在对部分积移位操作时 如果最高位是 1 时 移位最高位仍然置 1 当 时考虑不够充分 没有置 1 导致程序出错 3 2 程序测试及结果分析程序测试及结果分析 测试阶段 用 2 组数据进行检验 1 输入 2B 23 输出 13 08 2 输入 3B 06 输出 3F 10 沈阳航空航天大学课程设计报告 附录 10 参考文献 1 白中英 计算机组成原理 第 4 版 M 北京 科学出版社 2008 2 王爱英 计算机组成与结构 第 4 版 M 北京 清华大学科学出版社 2006 3 白中英 计算机组成原理 第 4 版 M 北京 科学出版社 2008 沈阳航空航天大学课程设计报告 附录 11 附 录 源代码 MOV A 03H 设置循环次数 MOV 9AH A MOV A 00H 特殊表 MOV R1 A MOV 90H A MOV 97H A LOOP IN 输入被乘数 MOV R0 A AND A 20H JZ M0 判断被乘数正负 MOV A R0 如果被乘数是负在前面加上 1 OR A 0C0H MOV R0 A M0 MOV A R0 如果是正数不操作 MOV 91H A 构造特殊表 MOV 92H A RL A MOV 93H A MOV A R0 CPL A ADD A 01H MOV 95H A MOV 96H A 沈阳航空航天大学课程设计报告 附录 12 RL A MOV 94H A LOOP1 IN 输入乘数 RL A RL A 将乘数移至前端 MOV R2 A LOOP2 MOV A 02H 设置移位次数 MOV 9BH A MOV A R2 取出移位乘数 RR A 判断后两位及附加位的值从而访问特殊表 AND A 07H ADD A 90H MOV R3 A 进而确定加数 MOV A R1 ADD A R3 MOV R1 A 部分积与加数相加得到新的部分积 MOV A 9AH SUB A 01H 判断总循环是否结束 JZ LAST MOV 9AH A MARK1 如果最高位是 1 移位后最高位仍然置 1 MOV A R1 AND A 80H 最低位如是 1 乘数右移之后最高位置 1 JZ LOOP3 MOV A R1 RRC A 沈阳航空航天大学课程设计报告 附录 13 JC LOOP4 OR A 80H MOV R1 A MOV A R2 RR A MOV R2 A MARK2 判断移位循环次数 MOV A 9BH SUB A 01H JZ LOOP2 MOV 9BH A JMP MARK1 LOOP3 最高位为 0 MOV A R1 RRC A JC LOOP5 MOV R1 A 最高位为 0 最低位为 0 时 MOV A R2 RR A MOV R2 A JMP MARK2 LOOP4 最高位为 1 最低位为 1 时 OR A 80H MOV R1 A MOV A R2 RR A OR A 80H MOV R2 A 沈阳航空航天大学课程设计报告 附录 14 JMP MARK2 LOOP5 最高位为 0 最低位为 1 时 MOV R1 A MOV A R2 RR A OR A 80H MOV R2 A JMP MARK2 LAST 部分积和乘数向右移一位之后输出有效数据 MOV A R1 RRC A JC LOOP6 MOV R1 A AND A 3FH OUT MOV A R2 RR A MOV R2 A AND A 0F8H OUT JMP ED LOOP6 MOV R1 A AND A 3FH OUT MOV A R2 RR A OR A 80H 沈阳航空航天大学课程设计报告 附录 15 OUT ED END 沈阳航空航天大学课程设计报告 16 课程设计总结 课程设计总结 1 刚收到此次课设题目时 我对题目没有太多思路 在通过几天的对 组原课本和实验指导书的再一次学习 终于有了思路 通过本次课 程设计 让我对计算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版旅游景点花卉景观鲜花采购协议
- 早读课件内容
- 二零二五年度旅游服务合同详细条款
- 二零二五年度钢筋材料仓储与物流合同范本-建筑工程专用
- 二零二五年度成都物业小区维修基金管理服务合同
- 二零二五年度建筑工程项目管理合作协议
- 二零二五年零售终端产品陈列与营销合作合同范本
- 2025版建筑工程项目管理咨询合同
- 2025至2030年中国间溴苯甲醛行业市场竞争格局及投资前景展望报告
- 二零二五年客户信用评价单方保密协议
- 西师版小学数学六年级上册教案
- 深基坑施工验收要求
- 2024电力北斗星地融合定位模组技术规范
- 农村公路养护管理培训资料
- 白细胞减少护理及饮食原则
- 项目监理安全事故报告
- 《国防教育》课件
- 数学教育技术与信息化的融合
- 2024年医院肝胆外科实习生带教计划
- 研学手册模板
- JGT161-2016 无粘结预应力钢绞线
评论
0/150
提交评论