补码一位乘的程序设计计算机组成原理.doc

上传人:h**** 文档编号:136055 上传时间:2018-07-10 格式:DOC 页数:22 大小:595KB
下载 相关 举报
补码一位乘的程序设计计算机组成原理.doc_第1页
第1页 / 共22页
补码一位乘的程序设计计算机组成原理.doc_第2页
第2页 / 共22页
补码一位乘的程序设计计算机组成原理.doc_第3页
第3页 / 共22页
补码一位乘的程序设计计算机组成原理.doc_第4页
第4页 / 共22页
补码一位乘的程序设计计算机组成原理.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、 沈阳航空航天大学 课 程 设 计 报 告 课程设计名称: 计算机组成原理课程设计 课程设计题目: 定点补码乘法器的程序设计 院(系): 专 业: 班 级: 学 号: 姓 名: 指导教师 : 完成日期: 沈阳航空航天大学课程设计报告 -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 程序

2、调试 . 9 3.2 程序测试及结果分析 . 9 参考文献 . 14 附 录 . 15 沈阳航空航天大学课程设计报告 -1- 第 1章 总 体设计方案 1.1 设计 原理 采用伟福 COP2000 试验箱,设计并实现定点补码一位乘( booth) 。 要求:采用的算法为定点补码一位乘 booth 算法,乘数和被乘数规定为 6 位,其中首位为符号位 。数据要求以原码的形式输入,采用补码方式进行运算。实验数据从试验箱的开关输入,运算的结果在 OUT 寄存器中显示。 设计原理: 比较 YnYn+1 的状态执行 相应的 操作 。 如下图是补码一位乘的运算规则 : 表 1.1 Booth 算法操作表说明

3、 乘数 Yn 附加位 Yn+1 说明 0 0 附加位、乘数、部分积 1 位 0 1 部分积加 X补 附 加位、乘数、部分积 1 位 1 0 部分积加 -X补 附加位、乘数、部分积 1 位 1 1 附加位、乘数、部分积 1 位 需要说明的是 此操作表是在 当 n 0 时 , 当 n=0 时,判 断 YnYn+1,运算规则同 此操作表 只是不移位。即在运算的最后一步,乘积不再右移。 1.2 设计思路 (1) 构造补码 一 位乘的 初始化所需要的数值 因为补码 一 位乘的算法 需要先求出 X补、 -X补 、 Q补 ,所以先将 X补、 -X补 、Q补 分别存贮到 0F0H到 0F2H存储单元中。 因为

4、部分积和附加位的初始值都是 0,所以在 0E0H 单元存入 附加位 初始值 0,在 R0 中存入 部分积 初始值 0。 其他 数的处 理 : 将输入的一个值 Q 求出补码作为乘数 Y,并存入 R2 中 ;另一个值 X 存入 R1 中,根据它来求出 X补、 -X补 ; 本实验规定乘数和被乘数为 6 位,数据位为五位,所以要完成六次操作,但沈阳航空航天大学课程设计报告 -2- 最后一次不移位,在 R3 寄存中存入数值 n=5,每次操作完成后减 1。 ( 2)运算并输出 根据乘数 末 位及附加位来确定 执行的操作 , 每完成一次操作 R3 中的数值减一 。 判断 R3 的数值是否为零,若不为零,则继

5、续循环上述操作 , 若为零,则循环结束,判断此时的 乘数 末 位及附加位 ,再按运算规则进行一次操作,但是不移 位,然后结束运算。 即开始时 Yn+1=0,部分积初值为 0,每一步乘法由 YnYn+1 决定原部分积加 X补 或加 -X补 或加 0,再右移一位得到新的部分积,以此重复 n 步,第 n+1 步由 YnYn+1 决定部分积加 X补 或加 -X补 或加 0,但不移位,即得最后结果,最后 先把 乘数 的最终结果从 OUT 寄存其中显示出来,再将部分积的最终结果从 OUT 寄存其中显示出来 。 ( 3)实现方式 在掌握 COP2000 试验箱的体系结构后,充分利用试验箱提供的汇编语言,以及

6、有限的硬件资源,完成程序的编写。 1.3 设计环境 利用 COP2000 型计 算机组成原理实验仪软件和计算机,在 COP2000 试验仪软件上编程实现 补码 一 位乘 。 COP2000 集成开发环境是为 COP2000 实验仪与 PC 机相连进行高层次实验的配套软件,它通过实验仪的串行接口和 PC 机的串行接口相连,提供汇编、反 编、编辑、修改指令、文件传送、调试 FPGA 面。其实验等功能,该软件在 Windows 下运行。 COP2000 试验仪软件的指令集分为如下大类:算术运算指令、逻辑运算指令、移位指令、数据传输指令、跳转指令、中断返回指令、输入输出指令。 本程序所用到的相应的指令

7、集 如下: ( 1)算术逻辑运 算指令 ADD A, R? -将寄存器 R?的值加入累加器 A 中 ADD A, #II -立即数 II加入累加器 A中 SUB A, #II-从累加器中减去立即数 II 后加入累加器 A 中 AND A, R?-累加器 A“与”寄存器 R?的值 AND A, #II -累加器 A“与”立即数 II 的值 OR A, R? -累加器 A“与”寄存器 R?的值 沈阳航空航天大学课程设计报告 -3- OR A, #II -累加器 A“与” 立即数 II 的值 CPL A-累加器 A取反,再存入累加器 A中 ( 2)数据传送指令 MOV A, R?-将寄存器 R?的值

8、送到累加器 A 中 MOV A, #II -将 立即数 II送到累加器 A中 MOV R?, A-将累加器 A 中的值送到寄存器 R?中 MOV R?, #II-将立即数 II 送到寄存器 R?中 RR A-累加器右移指令 RL A-累加器左移指令 ( 3)跳转指令 JZ MM-若零标志位置 1,跳转到 MM 地址 JMP MM-跳转到 MM地址 ( 4) 输入 输出指令 IN-从输入端口读入数据到累加器 A 中 OUT-将累加器 A 中数据输出到输出端口 如下为 COP2000 计 算 机 组 成 原 理 实 验 软 件 截 图 :图 1.1 COP2000 计算机组成原理试验仪软件截图 沈

9、阳航空航天大学课程设计报告 -4- 第 2章 详细设计方案 2.1 总体方案 的设计与实现 本 课设 采用 COP2000 实验仪软件和计算机实现补码 一 位乘的功能,利用伟福 COP2000 的指令集编程实现。 总体设计方法为输入两个数,分别求出需要的相应值, n 为数据位个数,当 n 不等于零时,判断 YnYn+1,按照补码操作表进行相应的运算,当 n等于零时,再按照补码操作表进行运算但是不移位,最后输出结果。 2.1.1 总体方案的 具体描述 ( 1) 先 进行初始化 : 将部分积和附加位设置为 0,分别存入 R0, 0E0H 中。设置循环次数为五次,存入 R3 中。操作如下: 先 输入

10、 一 个数值 X 存入 R1 中, 判断 X 的符号位, 将这个数和 20H 进行“与”运算, 如果为 00H, 说明该数值为正数,它的 补码也为 X;如果为 20H,则说明该数为负数 ,则 先 将 X 取反 ,将取反后的数值加上 21H,求出补码 ,补码存入 0F0H中 ,因为规定乘数和被乘数为六位,但机器会识别八位,令前两位与符号位保持相同,方便运算 。 再求出 -X 的补码, 存入 0F1 中。最后求出 Q 的补码 Y,存入0F2 中。 ( 2) 根据运算规则循环相乘: 乘法运算前 A 寄存器被清零,作为初始部分积,附加位置为 0,被乘数的补码存在 X 中,乘数的补码在 Q 高 n+1

11、位中,寄存器 R3 存放乘数的位数 n,乘 法开始后,根据 Yn 和附加位 Yn+1 的状态决定部分积与被乘数相加还是相减,或是不加也不减,然后根据补码 规则进行 算术移位 ,先判断乘数 Y 的末位,如果 Yn为 1,则附加位为 1,反之为 0,将乘数右移一位,在判断部分积的末位,若部分积末位为 0,将移位后的乘数首位置 0,反之置 1,最后判断部分积的首位,令部分积移一次位后的首位与原先相同,这是一次 操作包括的 所有 步骤 。 沈阳航空航天大学课程设计报告 -5- ( 3) 判断循环是否结束 并输出 : 移位后,将 R3 的值减一,判断是否为 0,若不为 0,则继续循环, 一共重复n 次。

12、 若为 0,则再 判断末两位状态决定是否与被乘数相加或者相减 ,或是不加也不减, 但是不 必 移位 ,这样便可得到最后结果 。最后输出结果,先将 乘数 从 OUT寄存器中显示,再将部分积从 OUT 寄存器显示出来。 2.2 流程图的设计与实现 2.2.1 流程图具体分析 1 进行初始化 , 流程图 如图 2.1: 开 始0 E 0 H 和 R 0 中 存 入 0 ;R 3 中 存 入 数 值 5输 入 数 值 X 存 入 R 1 中 , 输入 Q 存 入 R 2 中求 出 X 补存 入 0 F 0 H 中 , - X 补存 入0 F 1 H 中 , Q 补 即 Y 存 入 0 F 2 H 中结

13、 束图 2.1 初始化 流程图 沈阳航空航天大学课程设计报告 -6- 2 根据运算规则循环相乘 判断乘数末位和附加位 YnYn+1,根据运算规则进行循环,其中移位时 附加位要与乘数末位保持一致,乘数的首位要与部分积的末位保持一致,部分积移位后的首位要与移位前的首位一致, 并且 根据 数据位 的个数决定循环几次 。流程图如图 2.2: 开 始判 断 Y 末 位判 断 附 加 位部 分 积 、 乘 数 同时 算 数 右 移 一 位部 分 积 + -X 补判 断 附 加 位部 分 积+ X 补010 11 0结 束图 2.2 循环相乘 流程图 具体说明:乘法开始后, 先将 Y 与 01H 进行“与”

14、运算,判断 Yn的末位,再将附加位与 01H 进行“与”运算,判断附加位的末位 Yn+1, 根据 Yn和附加位Yn+1 的状态决定部分积与被乘数相加还是相减,或是不加也不减,然后根据进行算术移位 。 移位操作需要 先判断乘数 Y 的末位,如果 Yn为 1,则附加位为 1,反之为 0,将乘数右移一位,在判断部分积的末位,若部分积末位为 0,将移位后的乘数首沈阳航空航天大学课程设计报告 -7- 位置 0,反之置 1, 再判断 部分积首位为 1,移位后的部分积首位仍置 1,移位的操作流程图如图 2.3: 开 始Y 末 位 Y n部 分 积 末 位 部 分 积 末 位将 附 加 位 置 为 1将 Y

15、右 移将 附 加 位 置 为 0将 Y 右 移Y 首 位置 为 1Y 首 位置 为 0Y 首 位置 为 1Y 首 位置 为 0部 分 积 首 位00 0部 分 积 右 移一 位首 位 置 为 1部 分 积 右 移一 位首 位 置 为 0结 束0图 2.3 移位操作流程图 沈阳航空航天大学课程设计报告 -8- 3判断循环是否结束 并输出 每完成一次运算规则操作就将寄存器 R3 中的数值减 1,直到减为 0,在判断一次 YnYn+1,按照运算规则表进行 加 X补 或 -X补 的运算,但是不移位,最后将结果输出,其中先输出 乘数 ,再输出部分积。流程图如 图 2.4: 开 始寄 存 器 R 3 中 的 数值 C 减 一C = 0判 断 Y 末 位判 断 附 加 位 判 断 附 加 位部 分 积+ X 补部 分 积 + -X 补0 11 0011 跳 到 模 块 2进 行 循 环相 乘输 出 乘 数和 部 分 积结 束0图 2.4 判断并输出 流程图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。