coop2000实现补码分类统计数据分析.doc_第1页
coop2000实现补码分类统计数据分析.doc_第2页
coop2000实现补码分类统计数据分析.doc_第3页
coop2000实现补码分类统计数据分析.doc_第4页
coop2000实现补码分类统计数据分析.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 目目 录录 1 总体设计方案总体设计方案 1 1 1 设计原理 1 1 2设计思路 1 1 3设计环境 1 2 详细设计方案详细设计方案 5 2 1 算法与程序的设计与实现 5 2 2 流程图的设计与实现 6 3 程序调试与结果测试程序调试与结果测试 7 3 1 程序调试 7 3 2 程序测试及结果分析 7 参考文献参考文献 9 附附 录录 10 1 1 总体设计方案 1 1 设计原理设计原理 对内存单元 1 100 内的整数进行整理 区分出正数 负数 零 奇数 偶 数 被七整除的数的个数 将这些数进行一下分类统计 并将它们存储在指定的 内存单元内 1 2设计思设计思路路 首先在 R0 寄存器定下 64H 也就是 100 的计数上限 然后再 R1 R2 设定 正数负数的标志 当 R1 R2 寄存器显示 00H 时就表示分别是正数 负数 正数 写入 F0 地址从 00 对应 1 负数写入 F1 地址从 00 加一 如果都不是 然后判断 这个数是不是零 若是零在 F2 地址从 00 开始 1 然后再判断这个数是不是偶数 如果是就在 F4 地址从 00 开始 1 如果是奇数就在 F3 地址从 00 开始 1 再然后 就是判断是不是 7 的倍数 若是就在 F5 地址从 00 开始加 1 然后再跳到计数加 一的位置再次循环以上过程 1 3设计环境设计环境 COP2000 集成调试软件界面分六部分 主菜单区 快捷图标区 源程序 机 器码区 结构图 逻辑波形区 指令系统 微程序 跟踪区 寄存器状态区 在 Windows 环境下 选中 开始 程序 COP2000 计算机组成原理实验 系统 点击COP2000 图标 启动界面如图1 1所示 2 图图 1 11 1 启动界面启动界面 结构图 逻辑分析区分三种窗口 结构图窗口 逻辑分析窗口 其它文本显 示窗口 结构图窗口显示模型机的内部结构 包括各种寄存器 A W R0 R3 MAR IR ST L D R 运算器 ALU 程序指针 PC 程序存储器 EM 微程序指针 uPC 微程序存储器 uM 及各种状态位 RCy Rz IReq IAck 在程序单步运行时 可以在结构图上看到数据的走向 及寄存器的输入输出状态 当寄存器或存储器显示为红色框时 表示数据从此流 出 当寄存器或存储器显示为黄色框时 表示数据流入此寄存器 此时总线上的 值也可以从结构图的下方观察到 其中DBUS为数据总线 ABUS为地址总线 IBUS 为指令总线 RT1 RT0 显示的将要执行的指令的第几个时钟周期 本模型机最 多有四个时钟周期 用RT1 RT0 的11 10 01 00 四个状态表示 如图1 2所 示 逻辑分析窗口显示的是在指令执行时 各种信号的时序波形 包括所有寄存 器 所有的控制信号在不同时钟状态下的值 可以直观地看到各种信号彼此之间 3 的先后时序关系 Cur 光标表示当前时间 可以移动此光标来选择不同的时间 观察此时 间下 各个寄存器 控制信号的逻辑状态 如图 1 3 所示 图图 1 21 2 结构窗口图结构窗口图 图图 1 31 3 逻辑图窗口逻辑图窗口 4 课设中用到的指令代码如表 1 1 所示 表表 1 1 1 1 核心指令介绍核心指令介绍 指令形式指令形式机器码机器码 1 1机器码机器码 2 2说明说明 MOV A R 011100 xx R 中的数送入 A 累加器中 MOV A R 011101xx 间址存储器的值送入 A 累加器中 MOV A MM011110 xxMM MM 地址的值送入 A 累加器中 MOV A II011111xxII 将立即数送入 A 累加器中 MOV R A100000 xx A 中的数送入 R 累加器中 JC MM101000 xx 如果进位就跳到 MM JZ MM101001xx 如果结果为零就跳到 MM JMP MM101011xx 直接跳到 MM CPL A111011xx 对 A 中的数取反 再存入 A SUB A II001111xxII A 中的值减去立即数再存入 A ADD A II000111xxII 将立即数加入 A 累加器中 AND A II010111xxII 立即数 与 累加器 A 中的数 OR A II011011xxII 累加器 A 中的数 或 立即数 OUT110001xx 累加器 A 中的数输出 5 2 详细设计方案 2 1 算法与程序的设计与实现算法与程序的设计与实现 本课设采用伟福 COP2000 实验仪软件和计算机功能 利用伟福 COP2000 的 指令集编程实现 首先确定各个数据类的存储地址 然后对存储器进行计数 MOV A 00H MOV 0F0H A 正数个数 MOV 0F1H A 负数个数 MOV 0F2H A 零的个数 MOV 0F3H A 奇数个数 MOV 0F4H A 偶数个数 MOV 0F5H A 被七个数 MOV R0 00H 用来对储存器号进行计数 设置计数的起始位置 1 首先第一条就是判断是否进行了 100 次的统计 十六进制就是 00H 64H 就是代码的 SUB A 64H 的含义 当超过 100 时跳到 LOOP 10 结束 然 后输出 F0 F5 中的数 2 再就是对 R1 R2 的辅助判断当前的数是正数 还是负数 正数 R1 显示 00 负数 R2 显示 00 3 接下来正式进入正题 先判断这数是不是负数 ADD A 80H 如果是会出 现进位 F1 就会加一 4 然后判断这数是不是零 AND A 0FFH 与全一进行与运算 只有零才会 有结果为零的情况 若是则 F2 加一 5 如果既不是负数也不是零 则必然是正数 则 F0 加一 6 判断奇偶数 3 4 5 步骤结束都会进行 6 步骤 通过与 1 进行与运算来判 断 若为偶数则结果为 0 否则为奇数 7 最后 6 结束跳到 LOOP7 开始判断此时是负数 还是正数 用到了 6 R1 R2 中的数 有如下情况 MOV A R1 AND A 0FFH JZ LOOP8 如果 是正数跳转 MOV A R2 AND A 0FFH JZ LOOP9 如果是负数跳转 进行一个补码的转换 JMP LOOP13 不是正负则为零 零能被整除 直 接跳转 8 最后进行七的倍数的判断 逐一减去 7 若为 0 则是 7 的倍数 否则从头 开始 9 当 8 步骤执行结束 所有数据类型全部判断完毕 对 R0 存储器进行累加 然后跳转到 LOOP 2 2 流程图的设计与实现流程图的设计与实现 流程图如图 2 1 所示 是 否 否是 是否 是否 是 否 计数是否到 100 是否为负数 负数 1 是否为零 零的个数 1 正数 1 是否为偶数 偶数 1 奇数 1 判断能否被七整除 被七整除 的数 1 结束 开始 7 图图 2 12 1 流程图流程图 3 程序调试与结果测试 3 1 程序调试程序调试 这个过程中会有些问题 比如 1 在进行零的个数的统计时 就会忘记在偶数的地址中的数计数加一 2 在进行七的倍数 统计的时候就会忘记判断正负 然后用统一的方法 进行处理 就会出现不是补码的数据分析的情况 就比较离题太远 好 像做了别人的课设 3 在进行七的倍数统计时 忘记了 0 是可以整除七的 造成了结果的不 准确 4 开始的时候由于不会看 EM 表 以为自己做的是错的 后来请教了朋 友才弄懂的 3 2 程序测试及结果分析程序测试及结果分析 结果展示如图 3 1 3 2 3 3 所示 又有在之前的代码知道 F0 F5 的内容 在 LOOP10 中我设计了相应的输出 代码进行一个数据的显示 来在 OUT 寄存器中轮流输出正数个数 负数的个数 零的个数 奇数的个数 偶数的个数 被七整除的数个数 在 EM 表中 F0 F5 分 别存储的是正数个数 负数的个数 零的个数 奇数的个数 偶数的个数 被七 整除的数个数 8 图图 3 13 1 运行结果运行结果 图图 3 23 2 数据统计情况数据统计情况 9 参考文献 1 唐朔飞 计算机组成原理 第 2 版 M 北京 高等教育出版社 2008 2 王爱英 计算机组成与结构 第 4 版 M 北京 清华大学出版社 2006 3 COP2000 实验指导书 10 附 录 MOV A 00H MOV 0F0H A 正数个数 MOV 0F1H A 负数个数 MOV 0F2H A 零的个数 MOV 0F3H A 奇数个数 MOV 0F4H A 偶数个数 MOV 0F5H A 被七整除的数的个数 MOV R0 00H 用来对储存器号进行计数 设置计数的起始位置 LOOP MOV A R0 判断是否循环完毕 SUB A 64H 设置计数的终止位置 JZ LOOP10 MOV A 0FFH 将 R1 R2 分别置全 1 分别用来存储一个数是正数负数的标志 MOV R1 A MOV R2 A MOV A R0 送入内存单元中的数 ADD A 80H 判断是否为负数 JC LOOP1 如果是负数则跳转 MOV A R0 不是负数则判断是否为零 AND A 0FFH JZ LOOP2 如果是零则跳转 JMP LOOP3 正数跳转 LOOP1 负数跳转到此处 MOV A 0F1H ADD A 01H 11 MOV 0F1H A MOV A 00H MOV R2 A JMP LOOP4 LOOP2 零跳转到此处 MOV A 0F2H ADD A 01H MOV 0F2H A JMP LOOP4 LOOP3 正数跳转到此处 MOV A 0F0H ADD A 01H MOV 0F0H A MOV A 00H MOV R1 A JMP LOOP4 LOOP4 判断数的奇偶 MOV A R0 AND A 01H JZ LOOP5 如果是偶数跳转 JMP LOOP6 不是偶数则奇数跳转 LOOP5 偶数跳转到此处 MOV A 0F4H ADD A 01H MOV 0F4H A JMP LOOP7 LOOP6 奇数跳转到此处 MOV A 0F3H 12 ADD A 01H MOV 0F3H A JMP LOOP7 LOOP7 开始判断能否被七整除 MOV A R1 AND A 0FFH JZ LOOP8 如果是正数跳转 MOV A R2 AND A 0FFH JZ LOOP9 如果是负数跳转 JMP LOOP13 不是正负则为零 零能被整除 直接跳转 LOOP8 MOV A R0 LOOP11 SUB A 07H JC LOOP12 不能被整除跳转 JZ LOOP13 能整除跳转 JMP LOOP11 LOOP9 负数跳转到此处 MOV A R0 CPL A 取反 OR A 80H ADD A 01H JMP LOOP11 LOOP12 不能被整除跳转到此处 MOV A R0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论