计算机组成原理与汇编原理课程设计(名字排序)

合集下载

计算机组成原理课程设计

计算机组成原理课程设计

课程设计报告课程设计名称:计算机组成原理系:学生姓名:班级:学号:成绩:指导教师:开课时间:2011-2012学年2 学期一、设计题目计算机组成原理课程设计——简单模型机的微程序设计二、主要内容通过课程设计更清楚地理解下列基本概念:1.计算机的硬件基本组成;2.计算机中机器指令的设计;3.计算机中机器指令的执行过程;4.微程序控制器的工作原理。

5.微指令的格式设计原则;在此基础上设计可以运行一些基本机器指令的微程序的设计三.具体要求1.通过使用作者开发的微程序分析和设计仿真软件,熟悉介绍的为基本模型机而设计的微程序的执行过程。

必须充分理解并正确解释下些问题:(1)微程序中的微指令的各个字段的作用。

哪些字段是不译码的,哪些字段是直接译码的,哪些字段又可以看成是字段间接编码的。

(2)微程序中的微指令是否是顺序执行的,如果不是,那么次地址是如何产生的。

什么情况下,次地址字段才是将要执行的微指令的地址。

(3)在微程序中如何根据机器指令中的相关位实现分支,据此,在设计机器指令时应如何避免和解决与其它指令的微指令的微地址冲突。

(4)哪些微指令是执行所有指令都要用到的。

(5)解释一条机器指令的微程序的各条微指令的微地址是否连续?这些微指令的微地址的安排的严重原则是什么?(6)为什么读写一次内存总要用两条微指令完成?(7)机器程序中用到的寄存器是R0,是由机器指令中哪些位决定的?如果要用R1或R2,是否要改写微程序或改写机器指令?如果要,应如何改写?2.在原有5条机器指令的基础上增加实现下述各功能的机器指令,试设计相应的机器指令的格式并改写原来的微程序使其可以运行所有的机器指令。

新增加的机器指令的功能是:求反指令NOT RS,RD :/(RS) →(RD)与指令AND RD,(addr):(RD)与(addr)→(RD)异或指令XOR RD,(addr):(addr)异或(RD)→(RD)或指令OR RD,(addr):(RD)或(addr)→(RD)减法指令SUB RD,RS :(RS)减(RD)→(RD)其中的RS、RD可以是R0、R1、R2中的任何一个。

计算机组成原理与汇编语言课程设计

计算机组成原理与汇编语言课程设计

计算机组成原理与汇编语言课程设计一、概述计算机组成原理与汇编语言课程是计算机科学与技术专业中非常重要的一门基础课程,是学习计算机硬件和软件的关键入门课程。

本次课程设计主要是通过实践,让学生们深刻理解计算机的构成以及汇编语言在计算机编程中的重要性。

本文将详细介绍本次课程设计的内容和实现方法。

二、课程设计内容1. CPU设计计算机的核心是中央处理器(CPU),CPU的设计是计算机组成原理的重中之重。

本次课程设计要求学生们设计一个简单的CPU,包括指令集的设计、寄存器的设计、数据通路的设计和控制器的设计等。

2. 汇编语言汇编语言是一种非常重要的低级语言,在计算机编程中得到了广泛的应用。

本次课程设计要求学生们深入理解汇编语言的基本概念,学习指令的设计和编写,以及相关的调试方法。

3. 组合逻辑电路设计计算机中不仅仅只有CPU,还有很多的组合逻辑电路,如加法器、多路选择器等。

本次课程设计要求学生们设计和实现一个基本的组合逻辑电路,并且熟悉组合逻辑电路的设计流程。

4. 存储器设计存储器是计算机中非常重要的模块之一,它能够存储和读取数据。

本次课程设计要求学生们设计一个简单的存储器,并且了解存储器的基本工作原理和结构。

三、课程设计实现方法1. CPU设计在CPU的设计中,学生们可以使用VHDL语言进行仿真设计,或者使用现成的EDA工具,如Quartus等进行开发。

首先,学生们要设计CPU的指令集,并确定寄存器的类型和数量,然后进行数据通路的设计和控制器的设计。

最后,学生们要对CPU进行功能测试和时序分析。

2. 汇编语言在汇编语言的学习中,学生们可以使用现成的汇编器工具,如MASM、NASM等,来编写和调试汇编程序。

同时,学生们也可以使用调试工具,进行变量跟踪和程序执行分析。

3. 组合逻辑电路设计在组合逻辑电路的设计中,学生们可以使用Verilog语言进行仿真和实现。

首先,学生们要确定要设计的电路的类型和功能,然后进行电路的逻辑设计和逻辑仿真。

计算机组成原理与汇编语言程序设计第3版课程设计

计算机组成原理与汇编语言程序设计第3版课程设计

计算机组成原理与汇编语言程序设计第3版课程设计一、设计背景和目的计算机组成原理与汇编语言程序设计是计算机科学与技术专业的一门核心课程,其重要性不言而喻。

随着信息技术的快速发展和计算机应用的广泛普及,人们对于计算机组成原理和汇编语言程序设计的要求越来越高。

本课程设计旨在帮助学生深入理解计算机组成原理和汇编语言程序设计的相关知识,提高其实践能力,培养其独立完成程序设计任务的能力。

二、设计内容和要求1. 设计内容本课程设计主要涉及以下几个方面的内容:1.计算机系统的组成和工作原理;2.汇编语言程序设计的基本概念和语法;3.汇编程序的设计方法和技巧;4.汇编程序的调试和优化。

2. 设计要求为了完成本课程设计,学生需要满足以下要求:1.熟练掌握计算机系统的组成和工作原理;2.掌握汇编语言程序设计的基本概念和语法;3.能够独立设计和实现简单的汇编程序;4.具备一定的汇编程序调试和优化能力。

三、设计步骤和方法1. 设计步骤本课程设计的具体步骤如下:1.确定设计题目和需求;2.学习和掌握相关知识和技能;3.设计和实现汇编程序;4.调试和优化汇编程序;5.撰写设计报告。

2. 设计方法为了实现设计目标和要求,学生需要采用以下方法:1.系统学习课程教材和相关资料;2.通过实验和练习掌握汇编程序设计的基本原理和方法;3.组织小组讨论和知识分享,促进学习和交流;4.结合实际应用场景,挖掘和解决实际问题。

四、设计实施计划1. 设计任务和计划本课程设计的任务和计划如下:1.确定设计题目和需求,于X月XX日前完成;2.学习和掌握相关知识和技能,于X月XX日前完成;3.设计和实现汇编程序,于X月XX日前完成;4.调试和优化汇编程序,于X月XX日前完成;5.撰写设计报告,于X月XX日前完成。

2. 计划实施方法为了按照计划实施本课程设计,学生需要采取以下措施:1.制定详细的计划和任务分解表;2.将时间合理分配,防止拖延和浪费;3.搭建可用的实验环境和工具支持;4.每周抽出固定的时间进行学习和实践;5.定期和小组成员交流和汇报进展情况。

计算机组成原理课程设计

计算机组成原理课程设计

计算机组成原理 课程设计一、课程目标知识目标:1. 让学生掌握计算机硬件的基本组成,包括CPU、内存、硬盘、输入输出设备等,并了解各部件的功能和工作原理。

2. 使学生了解并理解计算机的指令系统,包括指令的种类、格式和执行过程。

3. 帮助学生理解计算机的性能指标,如主频、缓存、运算速度等,并学会分析不同硬件配置对计算机性能的影响。

技能目标:1. 培养学生运用所学知识分析和解决实际问题的能力,例如根据需求选择合适的计算机硬件配置。

2. 提高学生的动手实践能力,通过组装和拆解计算机硬件,加深对计算机组成原理的理解。

3. 培养学生查阅资料、自主学习的能力,以便在课后拓展相关知识。

情感态度价值观目标:1. 培养学生对计算机科学的兴趣和热情,激发他们探索计算机技术发展的积极性。

2. 增强学生的团队合作意识,通过小组讨论和实践活动,学会与他人合作共同解决问题。

3. 引导学生关注计算机技术在生活中的应用,认识到科技对社会的推动作用,培养创新精神和责任感。

本课程针对高中年级学生,结合计算机组成原理的教学要求,将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。

课程性质为理论联系实践,注重培养学生的实际操作能力和创新思维。

在教学内容上,紧密联系课本知识,突出重点,使学生能够在实践中掌握计算机组成原理的相关知识。

二、教学内容1. 计算机硬件基本组成- 课本第二章:介绍CPU、内存、硬盘、输入输出设备等硬件的基本概念、功能及工作原理。

- 教学大纲:安排2课时,通过讲解、图示和实物展示,使学生了解各硬件部件的作用及相互关系。

2. 计算机指令系统- 课本第三章:讲解指令的种类、格式和执行过程,以及指令系统的发展。

- 教学大纲:安排2课时,通过实例分析、指令执行流程图解,帮助学生理解计算机指令系统的基本原理。

3. 计算机性能指标与硬件配置- 课本第四章:介绍计算机性能指标,分析不同硬件配置对计算机性能的影响。

- 教学大纲:安排2课时,结合实际案例,让学生学会分析硬件配置对计算机性能的影响,并能根据需求选择合适的硬件配置。

计算机专业课程表

计算机专业课程表
移动通信,卫星通信,计算机系统维护技术
计算机专业:
基础方面
高等数学
线性代数
复变函数与积分变换
概率统计
硬件方面:
电路分析基础
数字电子技术基础
模拟电子技术基础
计算机组成原理
微机原理及接口技术
计算机系统与结构
单片机及接口技术
信号与系统
数据库系统,操作系统,计算机网络,计算机系统结构,光通信技术,嵌入式系统设计,
Internet与web编程,Cisio/Solaris网络体系设计与实现,综合布线系统
编译原理,数字系统设计VHDL,信号与系统,微机系统与接口技术,数字信号处理,
软件工程,IT项目管理,七号信令系统,电子商务概论,多媒体技术,UNIX操作系统,计算机信息安全
计算机网络/代数结构与组合数学
实时系统技术/Unix系统/软件构件技术/软件测试与维护
第七学期:软件项目管理,面向对象系统分析与统计
计算机图形学/信息检索与利用
电子商务/数据仓库与数据挖掘/软件过程能力评估/软件质量控制
第八学期:软件工程工具与环境/新技术专题
第一学期:高等数学,计算机基础
第二学期:高等数学,C语言程序设计,逻辑电路与逻辑设计,线性代数
第三学期:离散数学,概率与数理统计
第四学期:计算机组成原理,数据结构,软件工程
第五学期:计算方法,操作系统,汇编语言
人工智能/JAVA语言
第六学期:算法分析与设计,数据库原理,编译原理
计算机专业课程表
离散数学,数据结构,计算机组成原理,汇编语言程序设计,面向对象技术,数据通信
原理,数字电路与逻辑设计,程序设计课程设计,数据结构课程设计,计算机组成原理试验,

《计算机组成原理与汇编语言》课程设计报告

《计算机组成原理与汇编语言》课程设计报告

广东技术师范学院天河学院计算机组成原理与汇编语言课程设计报告题目:打字练习动画交互设计者:叶葆青陈功财卢勇盛植志荣卓荣辉专业班级:本计科132学号:2013041543245 20130415432022013041543233 20130415432512013041543252指导教师:胡安明所属系部:计算机科学与技术系2015年6月10日摘要本课程设计是用汇编语言完成打字练习功能的实现,本文的出发点从设计目的,概要设计,详细设计,程序调试以及心得体会五部分来对该程序的设计进行详细解释和说明,并且结合了流程图和实际界面截图。

从构思,编写,调试到完整的是实现,每一部分都做了深入的分析和说明。

本文的核心部分是对于详细设计的讲解与分析,而这当中的侧重点又在于设计思想的再现。

当然,其他部分也是必不可少的。

关键词:功能模块,核心代码,随机字符,模块调用目录1.需求分析 (4)1.1概述 (4)1.2系统目标 (4)1.3开发环境 (4)2.程序流程图及其说明 (4)2.1程序流程图 (5)2.2流程图说明 (6)3.程序调试 (6)4.心得体会 (7)5.参考文献 (8)6.附录(代码 (9)1.需求分析2.1.1概述这次课设的任务是写一个程序,运行可执行程序后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出。

通过课程设计,主要达到以下目的:1. ,加强用汇编语言编程的能力;2. 调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等;3. 了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础;增进对汇编语言的认识4. 5. 掌握屏幕输出显示的设计方法。

通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序中;2.1.2系统目标根据题目要求可以看到有以下几部分来实现打字练习:1.由26字母乱序组成一行显示行。

计算机组成原理与汇编语言课程设计(字母与进制转换系统)

计算机组成原理与汇编语言课程设计(字母与进制转换系统)

课程设计报告课程名称:计算机组成原理与汇编语言报告题目:字母与进制转换系统学生姓名:所在学院:信息科学与工程学院专业班级:指导教师:2013 年6月26 日摘要汇编语言是计算机能够提供给用户使用的最快且最有效的语言,也是能够充分利用计算机所有硬件资源并能直接控制硬件的唯一语言。

用汇编语言编制的程序同机器语言程序一一对应,它的目标代码短,运行速度快,在对程序的时间和空间要求很高的场合,往往需要采用汇编语言。

本程序是用汇编语言编写的字母与进制转换系统,拥有三个子功能。

分别为将大写字母转换为小写字母,将十进制数转换为十六进制数和将十六进制数转换为十进制数。

通过此次课程设计,我们对汇编语言的大部分基本指令非常熟悉。

分析问题,解决问题的能力将得到极大的提高。

关键词:汇编;语言;进制;转换目录一、课题分析 (1)二、需求分析 (2)1.功能描述 (2)2. 功能模块分析 (2)三、设计方案 (3)1.系统流程图 (3)2.子程序模块设计 (4)3. 详细设计 (4)4.程序调试结果及分析 (11)四、结论与心得 (12)五、参考文献 (13)一、课题分析根据要求我们做的是完成一个字母或数制之间的转化程序,主程序分别具有3种可选择的子功能,按相应的字母(X=>功能1; Y=>功能2; Z=>功能3;)可分别进入相应的子功能并在屏幕上显示结果。

3种可选择的子功能分别为:1)实现大写字母向小写字母的转换2)实现十进制数向十六进制数的转换3)实现十六进制数向十进制数的转换。

当运行程序后,应该要出现一个主菜单界面,主界面应该要能进入三个子功能界面,即输入X,进入实现大写字母向小写字母的转换的子功能界面;输入Y,进入十进制数向十六进制数转换的子功能界面;输入Z,进入十六进制数向十进制数的转换。

如:当选中了大写字母向小写字母转换的功能后,如果输入的不是大写字母,应要提示输入错误,请重新输入,直到输入正确为止。

计算机组成原理课程设计

计算机组成原理课程设计

计算机组成原理课程设计
计算机组成原理课程设计
一、课程介绍
本课程主要介绍计算机组成原理,包括计算机的结构,功能,性能,介绍CPU,存储器,总线,输入/输出系统,及这些部件之间的工作关系。

二、课程目标
1. 学生能够认识计算机的概念、主要组成部分及功能。

2. 了解计算机基本工作原理,包括CPU,存储器,总线,输入/输出系统,以及这些部件之间的工作关系。

3. 掌握主要软件技术,包括汇编语言,编译语言,操作系统等。

三、内容安排
本课程包括以下主要内容:
1. 计算机基本概念:计算机的构成,计算机系统和计算机网络。

2. CPU:架构、指令集、运算法则和程序控制。

3. 存储器:存储器的类型、特性和性能。

4. 总线:总线的结构、架构及特点。

5. 输入输出系统:计算机系统的输入输出结构、设备接口、通信协议。

6. 汇编语言程序设计:汇编语言基本语法,程序编写及调试。

7. 编译语言程序设计:编译语言程序设计,程序语言、数据结构、程序编写及调试。

8. 操作系统程序设计:操作系统概念、基本功能结构,虚拟存储器,任务调度,工作管理,系统文件管理等。

四、课程评价
课程主要采用学习报告、小组讨论、实验报告等方式进行评价。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程名称:计算机组成原理与汇编语言报告题目:汇编语言名字排序学生姓名:所在学院:信息科学与工程学院专业班级:指导教师:2013 年6月26 日摘要汇编语言是直接面向处理器(Processor)的程序设计语言,处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。

每一种处理器都有自己可以识别的一整套指令,称为指令集。

处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。

汇编语言的排序,方法有许多,最常见的冒有泡排序、快速排序等等,冒泡排序的方法在软件开发中运用的十分广泛,其运行的效率很高,是排序问题的首选,这项目的排序我也采用冒泡排序,根据字母的先后顺序排列,然后显示出来。

关键词:处理器;指令;排序目录一、课题分析 (1)二、需求分析 (2)1.功能描述 (2)2. 功能模块分析………………………………………………………三、设计方案 (3)1.系统流程图 (3)2.子程序模块设计 (3)3. 详细设计 (3)4.程序调试结果及分析 (4)四、结论与心得 (6)五、参考文献 (6)一、课题分析用汇编语言进行人名排序其核心就是按照人名的字母的顺序进行排序,在此我用的是冒泡排序法。

整个设计思路就是:首先是输入所有的名字,然后把所有的名字放到Nametab表中,然后就是在表中对所有的名字运用冒泡排序法进行排序,先比较相邻的元素。

如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,在这一点,最后的元素应该会是最大的数,针对所有的元素重复以上的步骤,除了最后一个,持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字或字符串需要比较。

最后就是通过k10dispz子程序把排好序的名字输出。

二、需求分析1.功能描述1.从键盘输入人的名字并且显示出来。

2. 建立一个表用来存放所有名字。

3.用冒泡排序法按字母上升的次序排序。

4.将排好的顺序输出显示。

2.功能模块分析设计思想:通过运用计算机汇编语言指令系统,将我们所要表达的语言转换成机器指令,任其识别。

这是一个在使用子程序为主的基础上,综合应用顺序结构、循环结构和分支等结构的程序,以实现从键盘终端输入的人名按字母上升的次序排序。

它们的过程和功能如下:1.b10read 接收键入的人名存放在Rnamepar中,并用空格符清除其后的单元;2. d10stor 把人名从NAMEPAR 传送到nametab中,并用namectr计数;3.g1osort用气泡排序算法对人名排序,并用swapped作为交换的标志控制循环结束。

其中用调用子程序h10xchg来交换两个人名串的位置,并设置swapped标志。

4.k10disp显示已经排序好了的人名。

三、设计方案1.系统流程图2.子程序模块设计1.子程序B10READ用于接收键入的人名存放在namepar中,并用空格符清除其后的单元。

2.子程序D10STOR把人名从namepar 传送到nametab中,并用namectr计数。

3.子程序G10SORT用气泡排序算法对人名排序,并用swapped作为交换的标志控制循环结束。

其中用调用子程序h10xchg来交换两个人名串的位置,并设置swapped标志。

4.子程序K10DISP用于显示已经排序好了的人名。

3.详子细设计Data segmentnamepar label bytemaxnlen db 21namelen db ?namefld db 21 dup(?)crlf db 13,10,'$'endaddr dw ?messg1 db 'name?','$'messg2 db 'sorted names',13,10,'$'namectr db 0nametab db 30 dup (20 dup(' '))namesav db 20 dup (?),13,10,'$'swapped db 0Data endsCode segmentmain proc farassume cs:code,ds:data,es:datastart: push dsmov ax,0push axmov ax,datamov es,axcldlea di,nametab ;建立nametab表a20loop:call b10readcmp namelen,0jz a30cmp namectr,30je a30call d10storjmp a20loopa30: cmp namectr,1jbe a40call g10sortcall k10dispa40: mov ax,4c00hInt 21hMain endpb10read proc near ;接收键入的人名存放在NAMEPAR中,并用空格符清除其后的单元mov ah,09lea dx ,messg1int 21hmov ah,0ahlea dx,nameparint 21hmov ah,09lea dx,crlfint 21hmov bh,0mov bl ,namelenmov cx,21sub cx,bxb20: mov namefld[bx],20hinc bxloop b20retb10read endpd10stor proc near ;把人名从namepar 传送到NAMETAB中,并用namectr计数;inc namectrcldlea si,namefldmov cx,10retd10stor endpg10sort proc near ;用气泡排序算法对人名排序sub di ,40mov endaddr,dig20: mov swapped,0 ;并用swapped作为交换的标志控制循环结束lea si,nametabg30: mov cx,20mov di,siadd di,20mov ax,dimov bx,sirepe cmpsbjbe g40call h10xchgg40: mov si,axcmp si,endaddrjbe g30cmp swapped,0jnz g20retg10sort endph10xchg proc near ;子程序,用来交换两个人名串的位置mov cx,10lea di , namesavmov si,bxrep movswmov cx,10mov di,bxrep movswmov cx ,10lea si,namesavrep movswmov swapped,1reth10xchg endpk10disp proc near ;子程序,用于显示结果mov ah,09lea dx,messg2int 21hlea si,nametabk20: lea di,namesav mov cx,10rep movswmov ah,9lea dx, namesavint 21hdec namectrjnz k20retK10disp endpcode endsend start4.程序调试结果及分析1.检查是否有错误2..把所有的名字输入进去3.结果显示四、结论与心得1.通过这次项目的开发,使我知道了团队的力量,特别感谢我的段珊老师和我的组员,尤其是我要到问题的时候,段珊老师无私的耐心的帮我解决了。

2.通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。

3.通过这次课程设计,我巩固所了学过的知识,能用汇编语言熟练地运用顺序、选择、循环、分支、子程序等结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。

4.在整个程序的编写中,调试占了很大部分的时间。

要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。

通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读和调试一定规模的汇编语言程序的水平。

五、参考文献[1] 易小琳.计算机组成原理与汇编语言.北京:清华大学出版社,2009.[2] 钱晓捷.新版汇编语言程序设计.北京:电子工业出版社,2008.[3] 唐朔飞.计算机组成原理.2版.北京:高等教育出版社,2008.[4] 洪志全 ,罗省贤.汇编语言程序设计教程.北京:电子工业出版社,2004[5] 俸远祯,王正智,徐洁等.计算机组成原理与汇编语言程序设计.北京:电子工业出版社,1999.。

相关文档
最新文档