组成原理课设关于累加器

沈阳航空航天大学

课 程 设 计 报 告

课程设计名称:计算机组成原理课程设计

课程设计题目:COP2000实现数据累加

院(系):计算机学院

专 业:计算机科学与技术

班 级:

学 号:

姓 名:

指导教师:

完成日期:

目 录

第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章 程序调试与结果测试8

3.1 程序调试8

3.2 程序测试及结果分析8

参考文献10

附 录(源代码)11

第1章 总体设计方案

设计原理

实现无符号数的累加功能,计算1+2+............+99+100。应用累加器和4个寄存器可以实现这个程序。根据该程序可以拓展到对连续内存地址的数据进行累加。连续内存地址的累加与累加相比,需要对于内存地址进行累加并且从内存地址中读数,然后将读出的数据进行累加求和。在累加求和部分,两个程序的原理是相同的。

设计思路

每个运算步骤需要用到累加器A,需要一个寄存器存储100以控制循环,一个寄存器存储从1开始每次加1递增的累加数。由于5050的十六进制是13BA,一个寄存器最大只能存放FF,所以需要用到两个计算器存放累加的结果。

我用R0存储控制循环的数;用R1存放累加数,用R2和R3存放累加和,其中R2存放高位,R3存放低位。

对于连续内存地址数据进行累加时,数据输入,在COP2000软件中,为了直观简便观看调试程序,可用立即数送入;而在硬件测试中,应采用中断方式输入,其优点是可连续输入不同数据,灵活,用户输入数据,如:

LOOP1:

JMP LOOP1

ORG 20H

IN

两种方式产生结果相同。在中断程序中可以加入循环控制数据和内存地址自动累加语句,可以控制输入的数据个数。

连续内存地址累加和数据累加相比,只有数据输入部分不同,最基本的原理是相同的,所以还是用R0存储控制循环的数;用R1存放累加数,用R2和R3存放累加和,其中R2存放高位,R3存放低位。

设计环境

利用伟福COP2000型计算机组成原理实验仪软件和计算机,在COP2000试验仪软件上编程实现数据的累加。伟福COP2000试验仪软件的指令集分为如下大类:算术运算指令、数据传送指令、跳转指令、中断返回指令、输入输出指令。

伟福COP2000计算机组成原理实验仪软件截图如1.3所示:

本程序所用到的相应的指令集

算术逻辑运算指令

SUB A,#II-----------从累加器中减去立即数后加入累加器A中

AND A, #II-----------累加器A“与”立即数II

ADDC A,R?----------将寄存器R?的值加入累加器A中,考虑进位

(2) 数据传送指令

MOV R?,#II----------将立即数II送到寄存器R?中

MOV MM, A -----------将累加器A中的值送到存储器MM地址中

MOV A,#II------------将立即数II送到累加器A中

MOV R?,A------------将累加器A中的值送到寄存器A中

MOV A,R?------------将寄存器R?的值送到累加器A中

MOV A, MM -----------将存储器MM地址中的值送到累加器A中

MOV @R?,A-------------将累计器A的值送到间址存储器中

(3)跳转指令

JZ MM---------------若零标志位置1,跳转到MM地址

JC MM---------------若进位标志置1,跳转到MM地址

JMP MM---------------跳转到MM

如下为COP2000计算机组成原理实验软件截图:

图 1.3 伟福COP2000计算机组成原理试验仪软件截图

第2章 详细设计方案

2.1 算法与程序的设计与实现

本课设采用伟福COP2000实验仪软件和计算机实现数据累加的功能,利用伟福COP2000的指令集编程实现。

2.1.1算法具体描述

从1累加到100是一个重复一百次的循环,控制循环的条件则必然是一个等于一百的数,每执行一次循环就减一,当此数减到零跳出循环。

本程序的核心思想就是:累加和=累加和+累加数,然后累加数加1。在开始没有进入循环时需要先将1存入寄存器R1,并且将1存入R3,循环的控制数初始值应该是9

计算机组成原理设计一个累加和,组成原理课设关于累加器.doc相关推荐

  1. 计算机组成课设sbb,计算机组成原理课设(完成版).doc

    计算机组成原理课设(完成版) 计算机组成原理课程设计报告 --16 位机微程序控制器指令系统的设计与实现 院(系.部): 信 息 工 程 学 院 小组成员姓名: 班 级: 计-10 指导教师: 秦彩云 ...

  2. 研讨班管理系统的设计与实现【数据库课设】

    觉得好请点个赞,谢谢!笔者用ProcessOn作的图 一.绪论 随着计算机技术的发展和数据库技术的广泛应用,各种以数据库为核心,以高级程序语言搭建用户软件的管理系统应运而生,不仅实现了自动化办公大大提 ...

  3. 计算机微机原理心得体会,微机原理课设体会心得体会

    微机原理课程设计心得体会 实得这学期通过对微机原理和微机实验学习,对微机系统和它的工作原理有了的了解. 微机实验课,总共做了十几个实验,回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的 ...

  4. 基于敏捷开发过程的医院CRM系统原型设计【工程技能培训课设报告】

    若本文对你有帮助,请点赞.关注我哟! 大四上学期的课设之一,报告评分不高,仅供参考.要抽人答辩的!但你要是提前离校了,请同学帮你交报告也行. <工程技能培训>是软件工程专业的一门实践课,综 ...

  5. 地大c语言课程设计题目,中国地质大学数据结构课设-全国铁路运输网最佳经由问题课程设计报告精选.doc...

    中国地质大学数据结构课设-全国铁路运输网最佳经由问题课程设计报告精选 数据结构 上机实习报告 实验题目:全国铁路运输网最佳经由问题 班级: 姓名: 学号: 完成日期:2017年4月25日 目录 课程设 ...

  6. 计算机组成原理设计一个Isa,计算机组成原理

    计算机组成原理课程设计报告 1 关于设计 1.1 设计目的及要求 通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方 ...

  7. 计算机组成原理 设计一个8位的数据寄存器DR

    dr寄存器如图所示  testbench及 相应模块如下 module dr(clk,rst,drload,din,dout); input clk,rst,drload; input [7:0] d ...

  8. java请设计一个一百亿的计算机,请设计一个一百亿的计算器

    A:你好,卧室是人们休息的主要处所,卧室布置得好坏,直接影响到人们的生活.工作和学习,所以卧室也是家庭装修的设计重点之一.卧室设计时要注重实用,其次才是装饰.具体应把握以下原则: 1.要保证私密性.私 ...

  9. 三上初识计算机教学设计,信息技术《第三课 认识WORD2017》教学设计

    信息技术<第三课 认识WORD2017>教学设计 1.掌握启动和退出WORD的方法: 2.了解WORD窗口的.组成: 3.学会显示和隐藏工具栏: 教学重点: 1.掌握启动和退出WORD的方 ...

最新文章

  1. Hyper-V 2016 系列教程12 Hyper-V 体系结构
  2. /usr/bin/time -v 显示内容含义
  3. Spring-在IoC中装配Bean系列文章导读
  4. 边做边学:《 Inter Planetary File System》简介
  5. mybatisplus service insert 空指针_c++ 图解层序遍历和逐层打印智能指针建造的二叉树...
  6. poj 2922 Honeymoon Hike
  7. 比中年危机更可怕的,是“下半生危机”
  8. NSIS ---使用nsDialogs创建自定义页面,并获取输入到控件中的内容保存到一个XML文档中
  9. 网站自动跳转代码大合集
  10. 井字游戏 Tic Tac Toe
  11. html空格符的代码用转义字符怎么表示,html空格符号标签 空格符号怎么打出来HTML?...
  12. [Python]网络爬虫(一):抓取网页的含义和URL基本构成
  13. python 下载 M3U8 视频
  14. 足球类游戏球场风云前端项目代码
  15. 简单照片墙制作html5
  16. fu-liou radiative transfer model 学习日记(一)
  17. java基础入门-ZipOutputStream打包下载
  18. 投CVPR过程中惊险的Rebuttal环节
  19. Redis的常用淘汰策略以及算法实现
  20. 开关电源雷击浪涌整改_开关电源之雷击浪涌发生器大解剖

热门文章

  1. mysql5.7.20linux安装,linux下 mysql5.7.20安装(精华)
  2. 卡尔曼滤波器_使用卡尔曼滤波器和路标实现机器人定位
  3. LwIP 之三 操作系统隔离接口 sys_arch
  4. 操作系统原理:操作系统的启动 中断/异常/系统调用
  5. python oracle 运维,mysql oracle python连接
  6. 频谱扩展 matlab,使用MATLAB进行频谱分析 | 学步园
  7. mysql 5.7.22 winx64_windows下mysql-5.7.22-winx64突然启动不了,报错Could not open log file
  8. anaconda打不开没反应_为什么账户总是有点击没对话?无非这2个原因
  9. c语言怎么往栈中输入元素,C语言栈操作
  10. webpack 配置react-router 服务,及react-router浅析