计组实验2报告

合集下载

计算机组成实验报告怎么写

计算机组成实验报告怎么写

计算机组成实验报告怎么写计算机组成实验报告怎么写「篇一」温州大学瓯江学院实验名称:Excel高级应用(二):教材订购情况分析实验目的:1、掌握Excel 20xx单元格数据的有效性设置2、进一步掌握数组公式的使用3、掌握条件格式设置4、掌握常用函数的使用5、掌握sumif 函数的使用6、掌握if 函数和逻辑函数的嵌套使用7、掌握and函数的使用8、进一步掌握countif函数的使用9、进一步掌握多个函数的组合使用实验内容:题:教材订购情况分析教材订购情况表“教材订购情况分析.xlsx”操作要求:1、在Sheet5中的A1单元格中设置为只能录入5位数字或文本。

当录入位数错误时,提示错误原因,样式为“警告”,错误信息为“只能录入5位数字或文本”。

2、在Sheet5的B1单元格中输入分数1/3。

3、使用数组公式,对Sheet1中“教材订购情况表”的订购金额进行计算。

*将结果保存在该表的.“金额”列当中。

*计算方法为:金额=订数*单价。

4、使用统计函数,对Sheet1中“教材订购情况表”的结果按以下条件进行统计,并将结果保存在Sheet1中的相应位置。

要求:*统计出版社名称为“高等教育出版社”的书的种类数,并将结果保存在Sheet1中的L2单元格中;*统计订购数量大于110且小于850的书的种类数,并将结果保存在Sheet1中的L3单元格中。

5、使用函数,计算每个用户所订购图书所需支付的金额,并将结果保存在Sheet1中的“用户支付情况表”的“支付总额”列中。

6、使用函数,判断Sheet2中的年份是否为闰年,如果是,结果保存“闰年”;如果不是,则结果保存“平年”,并将结果保存在“是否为闰年”列中。

*闰年定义:年数能被4整除而不能被100整除,或者能被400整除的年份。

=IF(OR(AND(MOD(A2,4)=0,MOD(A2,100)<>0),MOD(A2,400)=0),"闰年","平年")计算机组成实验报告怎么写「篇二」关于计算机组成实验报告怎么写1 .实验目的:1).学习和了解 TEC-20xx 十六位机监控命令的用法; 2).学习和了解TEC-20xx 十六位机的指令系统; 3).学习简单的 TEC-20xx 十六位机汇编程序设计;2.实验内容:1).使用监控程序的 R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容;2).使用 A 命令写一小段汇编程序,U 命令反汇编刚输入的程序,用 G 命令连续运行该程序。

实验二加减法器

实验二加减法器

计算机组成原理实验报告一、实验目的及要求本次实验要求掌握加法器、减法器的设计与实现。

可以利用原理图设计并实现 1 位、8 位和32 位加法器,以及32 位加减器。

设计1 位加法器,将加法器中加入减法功能,可以利用SUB(减)的控制信号;二、实验设备(环境)及要求1. Windows 2000 或Windows XP2. QuartusII9.1 sp2、DE2-115 计算机组成原理教学实验系统一台。

三、实验内容与步骤(1)两个二进制数字A,B 和一个进位输入C0相加,产生一个和输出S,以及一个进位输出C1,这种运算电路成为全加器(1 位加法器)。

1 位全加器有两个输出S 和C1,其中S 为加法器的和,C1 为进位位输出。

下表中列出一位全加器进行加法运算的输入输出真值表:表2-1 加法器的真值表根据以上真值表,可以得到 1 位加法器的输入与输出逻辑关系。

根据上面的逻辑关系式可以建立如下图的 1 位加法器的原理图接着进行功能仿真:开始功能仿真,在【Processing】菜单下,选择【Start Simulation】启动仿真工具。

实验结果:在5-10ns 时,A=1,B=0,C0=0,则C1=0,S=1;在15-20ns 时,A=1,B=1,C0=0,则C1=1,S=0;在30-35ns 时,A=0,B=1,C0=1,则C1=1,S=0;在35-40ns 时,A=1,B=1,C0=1,则C1=1,S=1;(2)8 位加法器的原理图设计实验原理8 位加法器用于对两个8 位二进制数进行加法运算,并产生进位。

8 位加法器真值表如下所示:表中A[7..0]表示 A 有8 位输入端:A7-A0;B[7..0]表示 B 有8 位输入端:B7-B0;S[7..0]表示S 有8 位输入端:S7-S0。

8 位加法器的A、B 都有8 个输入端,加上进位CIN,共有17 个输入端。

它有9 个输出端,即S7-S0 和COUT,因此8 位加法器可由8 个 1 位加法器构成。

计算机组成原理实验课 实验报告

计算机组成原理实验课 实验报告
2接通两台机器电源
3设置TH-union+实验机工作方式:将6个拨动开关置于正确位置,实现“分立电路CPU的16位联机工作、使用微程序控制其并从内存读指令”的状态。
4在pc机上启动PECE16.EXE
5练习TH-union+实验机各条指令的使用,掌握其功能。
6编写汇编程序段,实现任务要求的功能。
三、实验结果
三、实验过程
这是一个完成整数排序功能的程序,要求首先输入5个参加排序的整数数值,接下来完成对这5个整数的排序操作,并输出最终的排序结果。
<1>在命令行提示符:下输入下面程序:
10 for i=1 to 5
20 input a(i)
30 next i
40 for i=1 to 4
50 for j=i+1 to 5
2.7实验机存储器使用和扩展实验
一、实验目的
1.理解计算机主存储器芯片的读写和控制方法,学习ROM存储器和RAM存储器的使用
2.熟悉计算机主存储器的组成方法,掌握存储器扩展技术.地址分配
二、实验环境介绍
1.扩展芯片连接
TH-union+教学实验计算机机箱上,供实验中进行存储器扩展空间的只有2个芯片插槽,可插入2片8K*8位的58C65芯片,进行EEPROM存储空间的扩展。
2.58C65芯片应用
58C65芯片是电可擦除可编程的ROM器件,它既可以通过专用的编程软件和设备向芯片写入相应内容,也可以通过写内存的指令,向芯片的指定单元写入数据。
三、实验步骤
用EEPROM芯片58C65扩展主存实验
(1)将扩展的AT58C65芯片插入标有“EXTROMH”和“EXTROML”的自锁紧插座,要注意芯片插入的方向。

计组实验报告(共10篇)

计组实验报告(共10篇)

计组实验报告(共10篇)计组实验报告计算机组成原理实验报告一一、算术逻辑运算器1. 实验目的与要求:目的:①掌握算术逻辑运算器单元ALU(74LS181)的工作原理。

②掌握简单运算器的数据传输通道。

③验算由74LS181等组合逻辑电路组成的运输功能发生器运输功能。

④能够按给定数据,完成实验指定的算术/逻辑运算。

要求:完成实验接线和所有练习题操作。

实验前,要求做好实验预习,掌握运算器的数据传送通道和ALU 的特性,并熟悉本实验中所用的模拟开关的作用和使用方法。

实验过程中,要认真进行实验操作,仔细思考实验有关的内容,把自己想得不太明白的问题通过实验去理解清楚,争取得到最好的实验结果,达到预期的实验教学目的。

实验完成后,要求每个学生写出实验报告。

2. 实验方案:1.两片74LS181(每片4位)以并/串联形式构成字长为8为的运算器。

2.8为运算器的输出经过一个输入双向三态门(74LS245)与数据总线相连,运算器的两个数据输入端分别与两个8位寄存器(74LS273)DR1和DR2的输出端相连,DR1和DR2寄存器是用于保存参加运算的数据和运算的结果。

寄存器的输入端于数据总线相连。

3.8位数据D7~D0(在“INPUT DEVICE”中)用来产生参与运算的数据,并经过一个输出三态门(74LS245)与数据总线相连。

数据显示灯(BUS UNIT)已与数据总线相连,用来显示数据总线上所内容。

4.S3、S2、S1、S0是运算选择控制端,由它们决定运算器执行哪一种运算(16种算术运算或16种逻辑运算)。

5.M是算术/逻辑运算选择,M=0时,执行算术运算,M=1时,执行逻辑运算。

6.Cn是算术运算的进位控制端,Cn=0(低电平),表示有进位,运算时相当于在最低位上加进位1,Cn=1(高电平),表示无进位。

逻辑运算与进位无关。

7.ALU-B是输出三态门的控制端,控制运算器的运算结果是否送到数据总线BUS上。

低电平有效。

计算机组成原理实验报告记录

计算机组成原理实验报告记录

计算机组成原理实验报告记录————————————————————————————————作者:————————————————————————————————日期:郑州航空工业管理学院计算机科学与应用系实验报告课程名:计算机组成原理学号:141096138姓名:阚丰蕊指导教师:范喆成绩;计算机科学与应用系实验一运算器实验(一)1、实验目的①深入了解AM2901运算器的功能及具体用法。

②深化运算器部件的组成、设计、控制与使用知识。

③能够熟练掌握对运算器所需控制信号的设置,并使之完成运算。

④能够独立地成功完成所给指令在运算器中的运算实验。

2、实验要求①实验前,认真了解AM2901运算器的基本结构,预习所需实验的内容,并在课前填写实验步骤表格,对于实验数据和实验结果进行预期性的分析,以提高实验效率。

②实验过程中,要按照正确的流程操作,防止损坏设备,分析可能遇到的各种现象,判断结果是否正确,并记录运算结果。

③实验之后,要认真填写实验报告,包括对对到的各种现象的分析,实验步骤和实验结果。

3、实验原理(1)运算器数据通路TEC-XP教学机的运算器主要采用4片AM2901芯片级联组成;每片AM2901芯片实现4位运算,4片芯片级联成16位的运算器。

AM2901芯片组成包括:1个4位的算术逻辑运算单元ALU、16个4位的通用寄存器、一个4位的乘商寄存器Q和若干个多路选择开关。

AM2901的数据通路如图所示:①算术逻辑运算单元ALUALU有两个数据输入端R和S。

在RS的各种组合中除去没有意思的和重复的,只有8种有效组合。

ALU可完成连个操作数的加、减、与、或、异或等多种操作。

ALU的输出结果可保存到通用寄存器、乘商寄存器Q,并且可将其值乘除2之后在保存。

ALU根据其运算的结果会产生4个标志位——符号标志位F3、零标志位F=0、溢出标志位OVR和进位标志位Cn+4。

②通用寄存器组AM2901中的通用寄存器组是由16个寄存器构成,具有双端口读写电路。

计算机组成与基本操作实验报告

计算机组成与基本操作实验报告

计算机组成与基本操作实验报告
一、实验目的
了解计算机的基本组成和操作。

二、实验内容
1. 观察计算机硬件组件。

2. 学习计算机的基本操作,如开关机、文件管理等。

3. 了解操作系统的基本功能。

三、实验步骤
1. 打开计算机主机箱,观察内部硬件组件,如CPU、内存、硬盘等。

2. 启动计算机,进入操作系统。

3. 学习开关机操作,包括正常关机和强制关机。

4. 打开文件资源管理器,学习文件和文件夹的创建、删除、复制、移动等操作。

5. 了解操作系统的基本功能,如任务管理器、控制面板等。

四、实验结果
1. 成功观察到计算机的内部硬件组件。

2. 掌握了计算机的基本操作,包括开关机、文件管理等。

3. 了解了操作系统的基本功能。

五、实验总结
通过本次实验,我们对计算机的组成和基本操作有了更深入的了解。

在实验过程中,我们观察了计算机的内部硬件组件,学习了计算机的基本操作和文件管理,同时也了解了操作系统的基本功能。

这次实验对于我们今后更好地使用计算机和理解计算机系统的工作原理都有很大的帮助。

计组实验报告(模板)

计组实验报告(模板)

大学计算机科学与工程学院《计算机组成原理》课程设计报告题目:简单模型机的组成与程序运行姓名:班级:学号:指导教师:1. 任务描述1.1题目名称简单模型机的组成与程序运行1.2设计要求基于TD-CMA计算机组成原理教学实验系统,设计一个复杂(简单)计算机整机系统----模型机,分析其工作原理。

2. 设计设备PC 机一台,TD-CMA 实验系统一套。

3. 设计原理和方法3.1数据格式模型机规定采用定点补码表示法表示数据,字长为8位,8 位全用来表示数据(最高位不表示符号),数值表示范围是:0≤X≤2^8-1。

3.2指令设计模型机设计三大类指令共十条,其中包括运算类指令、控制转移类指令,数据传送类指令。

运算类指令包含三种运算,算术运算、逻辑运算和移位运算,设计有2条运算类指令,分别为:AND、DEC,所有运算类指令都为单字节,寻址方式采用寄存器直接寻址。

控制转移类指令有3条HLT、JMP、BZC,用以控制程序的分支和转移,其中HLT为单字节指令,JMP 和BZC 为双字节指令。

数据传送类指令有IN、OUT、MOV、LDI、LAD、STA 共5条,用以完成寄存器和寄存器、寄存器和I/O、寄存器和存储器之间的数据交换,均为双字节指令。

3.3指令格式所有单字节指令(AND、DEC、HLT )格式如表3.3-1所示:表3.3-1其中,OP-CODE 为操作码,RS 为源寄存器,RD 为目的寄存器,并规定如表3.3-2所示:表3.3-2IN 和 OUT 的指令格式为如表3.3-3所示:表3.3-3系统设计五种数据寻址方式,即立即、直接、间接、变址和相对寻址,LDI 指令为立即寻址,LAD、STA、JMP 和BZC 指令均具备直接、间接、变址和相对寻址能力。

LDI 的指令格式如下,第一字节同前一样,第二字节为立即数,如表3.3-4所示:表3.3-4LAD、STA、JMP和BZC指令格式如表3.3-5所示:表3.3-5其中 M 为寻址模式,具体如表3.3-6所示,以 R2 做为变址寄存器 RI。

计算机组成原理的实验报告

计算机组成原理的实验报告

计算机组成原理的实验报告一、实验目的本次实验的主要目的是深入理解计算机组成原理中的关键概念和组件,通过实际操作和观察,增强对计算机硬件系统的认识和掌握能力。

具体包括:1、了解计算机内部各部件的工作原理和相互关系。

2、熟悉计算机指令的执行流程和数据的传输方式。

3、掌握计算机存储系统的组织和管理方法。

4、培养分析和解决计算机硬件相关问题的能力。

二、实验设备本次实验使用的设备包括计算机、逻辑分析仪、示波器以及相关的实验软件和工具。

三、实验内容1、运算器实验进行了简单的算术运算和逻辑运算,如加法、减法、与、或等操作。

观察运算结果在寄存器中的存储和变化情况。

2、控制器实验模拟了指令的取指、译码和执行过程。

分析不同指令对计算机状态的影响。

3、存储系统实验研究了内存的读写操作和地址映射方式。

考察了缓存的工作原理和命中率的计算。

4、总线实验观察数据在总线上的传输过程和时序。

分析总线竞争和仲裁的机制。

四、实验步骤1、运算器实验步骤连接实验设备,将运算器模块与计算机主机相连。

打开实验软件,设置运算类型和操作数。

启动运算,通过逻辑分析仪观察运算过程中的信号变化。

记录运算结果,并与预期结果进行比较。

2、控制器实验步骤连接控制器模块到计算机。

输入指令序列,使用示波器监测控制信号的产生和变化。

分析指令执行过程中各个阶段的状态转换。

3、存储系统实验步骤搭建存储系统实验电路。

进行内存读写操作,改变地址和数据,观察存储单元的内容变化。

分析缓存的替换策略和命中率的影响因素。

4、总线实验步骤连接总线模块,配置总线参数。

多个设备同时发送数据,观察总线的仲裁过程。

测量数据传输的时序和带宽。

五、实验结果与分析1、运算器实验结果加法、减法等运算结果准确,符合预期。

逻辑运算的结果也正确无误。

观察到在运算过程中,寄存器的值按照预定的规则进行更新。

分析:运算器的功能正常,能够准确执行各种运算操作,其内部的电路和逻辑设计合理。

2、控制器实验结果指令能够正确取指、译码和执行,控制信号的产生和时序符合指令的要求。

计算机组成原理课程设计的实验报告

计算机组成原理课程设计的实验报告

计算机组成原理课程设计的实验报告实验报告:计算机组成原理课程设计摘要:本实验报告旨在介绍计算机组成原理课程设计的实验过程和结果。

该实验旨在深入理解计算机的组成和工作原理,并通过设计和实现一个简单的计算机系统来加深对计算机组成原理的理解。

本实验报告将包括实验的目的、实验环境、实验步骤、实验结果以及实验的分析和讨论。

1. 实验目的:本实验的目的是通过设计和实现一个简单的计算机系统,加深对计算机组成原理的理解。

具体目标包括:- 理解计算机的基本组成和工作原理;- 掌握计算机硬件的设计和实现方法;- 学习使用计算机组成原理相关的软件工具。

2. 实验环境:本实验所需的硬件和软件环境如下:- 硬件环境:一台支持计算机组成原理课程设计的计算机;- 软件环境:计算机组成原理相关的软件工具,如Xilinx ISE、ModelSim等。

3. 实验步骤:本实验的步骤主要包括以下几个部分:3.1 系统需求分析在设计计算机系统之前,首先需要明确系统的需求和功能。

根据实验要求,我们需要设计一个简单的计算机系统,包括指令集、寄存器、运算单元等。

3.2 系统设计根据系统需求分析的结果,进行系统设计。

设计包括指令集的设计、寄存器的设计、运算单元的设计等。

3.3 系统实现在系统设计完成后,需要进行系统的实现。

具体步骤包括使用硬件描述语言(如VHDL)进行电路设计,使用Xilinx ISE进行逻辑综合和布局布线,最终生成bit文件。

3.4 系统测试在系统实现完成后,需要进行系统的测试。

测试包括功能测试和性能测试。

功能测试主要是验证系统是否按照设计要求正常工作;性能测试主要是测试系统的性能指标,如运行速度、吞吐量等。

4. 实验结果:经过实验,我们成功设计和实现了一个简单的计算机系统。

该系统具有以下特点:- 指令集:支持基本的算术运算和逻辑运算;- 寄存器:包括通用寄存器、程序计数器、指令寄存器等;- 运算单元:包括算术逻辑单元(ALU)和控制单元。

计算机实验报告(优选2篇)

计算机实验报告(优选2篇)

计算机实验报告(优选2篇)第1篇:计算机实验报告一、实习时间20xx年X月18日到X月10日二、实习地点中-*三、实习目的通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,为顺利毕业进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。

四、实习内容能对电脑交易和具体的电脑安装步骤进行了解,并查阅资料巩固自我缺漏的电脑经验。

能将具体的计算机知识应用到实际中,在电脑交易的同时,将自己的所学所想所感付诸实践。

能够熟练掌握一定的计算机技巧,比如安装系统,安装插线,识别型号,处理图形和flash等。

能够与别人进行一定程度的计算机交流,并且提供各种买卖信息以及电脑性能好坏的识别。

能够推销贩卖计算机,并且积累丰厚的社会交流经验和提升自我的语言表达能力。

五、实习体会职高生活让我对计算机理论知识有了一定的了解。

但实践出真知,唯有把理论与实践相结合,才能更好地为社会服务。

经过实践和实习,我对未来充满了美好的憧憬,在未来的日子,我将努力做到以下几点:一、继续学习,不断提升理论涵养。

在信息时代,学习是不断地汲取新信息,获得事业进步的动力。

作为一名青年学子更应该把学习作为保持工作积极性的重要途径。

走上工作岗位后,我会积极响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升能力,以广博的社会知识拓展视野。

二、努力实践,自觉进行角色转化。

只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。

同样,一个人的价值也是通过实践活动来实现的,也只有通过实践才能锻炼人的品质,彰显人的意志。

必须在实际的工作和生活中潜心体会,并自觉的进行这种角色的转换。

三、提高工作积极性和主动性实习,是开端也是结束。

展现在自己面前的是一片任自己驰骋的沃土,也分明感受到了沉甸甸的责任。

在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,做好个人工作计划,努力创造业绩,继续创造更多的价值。

计算机组成原理实验报告2范文

计算机组成原理实验报告2范文

实验二一位全加器实验姓名:王雄学号:专业:数媒2班【实验环境】1. Windows 2000 或 Windows XP2. QuartusII、GW48-PK2或DE2-115计算机组成原理教学实验系统一台,排线若干。

【实验目的】1、熟悉原理图和VHDL语言的编写。

2、验证全加器功能。

【实验原理】设计一个一位全加器,能完成两个二进制位的加法操作,考虑每种情况下的进位信号,完成8组数据的操作。

【实验步骤】1.1建立工程项目1.1.4 原理图设计新建项目后,就可以绘制原理图程序了。

下面以一位全加器如图1-12所示为例,讲解原理图的编辑输入的方法与具体步骤。

图1-12 一位全加器原理图(1)执行菜单“File”→“New…”,或在工具栏中单击图标,弹出如图1-13所示的“New”对话框。

在此对话框的“Design Files”项中选择“Block Diagram/Schematic File”,在单击“OK”按钮,QuartusⅡ10.0的主窗口进入如图1-14所示的原理图工作环境界面。

图1-13 “New”对话框(2)在如图1-14所示的原理图工作环境界面中单击图标或在原理图编辑区的空白处双击鼠标或在原理图编辑区的空白处右键单击在弹出的菜单中选择“Insert”中的任意一个,弹出如图1-15所示的元件输入对话框,在“Name”栏中直接输入所需元件名或在“Libraries: ”的相关库中找到合适的元件,再单击“OK”按钮,然后在原理图编辑区中单击鼠标左键,即可将元件调入原理图编辑区中。

为了输入如图1-12所示的原理图,应分别调入and2、xor2、or3、input、output。

对于相同的器件,可通过复制来完成。

例如3个and2门,器操作方法是,调入一个and2门后,在该器件上单击鼠标右键,在弹出的菜单中选择“Copy”命令将其复制,然后在合适的位置上右键,在弹出的菜单中选择“Paste”命令将其粘帖即可。

计组实验报告 (2)

计组实验报告 (2)

计算机组成原理实验报告课程名称计算机组成原理实验学院计算机学院专业班级计算机科学与技术学号学生姓名指导教师2015年 5 月19 日计算机学院学号:姓名教师评定实验题目基础汇编语言程序设计实验一、实验目的:1、学习和了解TEC-XP+教学实验监控命令的用法;2、学习和了解TEC-XP+教学实验系统的指令系统;3、学习简单的TEC-XP+教学实验系统汇编程序设计二、实验设备与器材:工作良好的PC机; TEC-XP+教学实验系统和仿真终端软件PCEC。

三、实验说明和原理:实验原理在于汇编语言能够直接控制底层硬件的状态,通过简单的汇编指令查看、显示、修改寄存器、存储器等硬件内容。

实验箱正如一集成的开发板,而我们正是通过基础的汇编语言对开发板进行使用和学习,过程中我们不仅需要运用汇编语言的知识,还需要结合数字逻辑中所学的关于存储器、触发器等基本器件的原理,通过串口通讯,实现程序的烧录,实验箱与PC端的通讯。

四、实验内容:1、学习联机使用TEC-XP+教学实验系统和仿真终端软件PCEC;2、学习使用WINDOWS界面的串口通讯软件;3、使用监控程序的R命令显示/修改寄存器内容、D命令显示存储内容、E命令修改存储内容;4、使用A命令写一小段汇编程序,U命令反汇编输入的程序,用G命令连续运行该程序,用T、P命令单步运行并观察程序单步执行情况。

五、实验步骤:1、准备一台串口工作良好的PC机器;2、将TEC-XP+放在实验台上,打开实验箱的盖子,确定电源处于断开状态;3、将黑色的电源线一段接220V交流电源,另一端插在TEC-XP+实验箱的电源插座里;4、取出通讯线,将通讯线的9芯插头接在TEC-XP+实验箱上的串口"COM1"或"COM2"上,另一端接到PC机的串口上;5、将TEC-XP+实验系统左下方的六个黑色的控制机器运行状态的开关置于正确的位置,再找个实验中开关应置为001100(连续、内存读指令、组合逻辑、联机、16位、MACH),6、控制开关的功能在开关上、下方有标识;开关拨向上方表示"1",拨向下方表示"0","X"表示任意,其他实验相同;7、打开电源,船型开关盒5V电源指示灯亮;在PC机上运行PCEC16.EXE文件,根据连接的PC机的串口设置所用PC机的串口为"1"或"2",其他的设置一般不用改动,直接回车即可; (8)按一下"RESET"按键,再按一下"START"按键,六、思考题:思考题:若把IN 81,SHR R0,JRNC 2028三个语句换成4个MVRR R0,R0语句,该程序执行过程会出现什么现象?试分析并实际执行一次。

计组实验2报告

计组实验2报告

Your goal is to modify(修改)your copy of bits.c so that it passes all thetests in btest without violating(违反)any of the coding guidelines.(编码指南)*********0. Files:*********Makefile - Makes btest, fshow, and ishowREADME - This filebits.c - The file you will be modifying and handing inbits.h - Header filebtest.c - The main btest programbtest.h - Used to build btestdecl.c - Used to build btesttests.c - Used to build btesttests-header.c- Used to build btestdlc* - Rule checking compiler binary (编译器的二进制)(data lab compiler)9实验数据编译器)driver.pl* - Driver program that uses btest and dlc to autograde bits.cDriverhdrs.pm - Header file for optional "Beat the Prof" contestfshow.c - Utility for examining floating-point representationsishow.c - Utility(实用,通用)for examining integer representations***********************************************************1. Modifying bits.c and checking it for compliance(服从)with dlc***********************************************************IMPORTANT: Carefully read the instructions(说明)in the bits.c file beforeyou start. These give the coding rules(编码规则)that you will need to follow ifyou want full credit(学分).Use the dlc compiler(编译器)(./dlc) to automatically(自动的)check your version(版本)ofbits.c for compliance(服从)with the coding guidelines:unix> ./dlc bits.cdlc(数据链路控制)returns silently if there are no problems with your code.Otherwise it prints(打印)messages that flag any problems. Running dlc withthe -e switch:unix> ./dlc -e bits.ccauses dlc to print counts of the number of operators(运算符)used by each function.Once you have a legal solution, you can test it for correctness usingthe ./btest program.*********************2. Testing with btest*********************The Makefile in this directory compiles your version of bits.c withadditional code(辅助码,补码)to create a program (or test harness) named btest.To compile and run the btest program, type:unix> make btestunix> ./btest [optional cmd line args]You will need to recompile(重新编译)btest each time you change your bits.cprogram. When moving from one platform(平台)to another, you will want toget rid of the old version of btest and generate a new one. Use thecommands:unix> make cleanunix> make btestBtest tests your code for correctness by running millions of testcases on each function. It tests wide swaths around well known cornercases such as Tmin and zero for integer puzzles, and zero, inf(无穷大), andthe boundary(边界)between denormalized(非规划的)and normalized numbers for floating point puzzles. When btest detects(发现)an error in one of your functions,it prints out the test that failed, the incorrect result, and theexpected result, and then terminates the testing for that function.Here are the command line options for btest:unix> ./btest -hUsage: ./btest [-hg] [-r <n>] [-f <name> [-1|-2|-3 <val>]*] [-T <time limit>]-1 <val> Specify first function argument-2 <val> Specify second function argument-3 <val> Specify third function argument-f <name> Test only the named function-g Format output for autograding with no error messages-h Print this message-r <n> Give uniform weight of n for all problems-T <lim> Set timeout limit to limExamples:Test all functions for correctness and print out error messages:unix> ./btestTest all functions in a compact form with no error messages:unix> ./btest -gTest function foo for correctness:unix> ./btest -f fooTest function foo for correctness with specific arguments:unix> ./btest -f foo -1 27 -2 0xfBtest does not check your code for compliance with the codingguidelines. Use dlc to do that.*******************3. Helper Programs*******************We have included the ishow and fshow programs to help you decipherinteger and floating point representations respectively. Each takes asingle decimal or hex number as an argument. To build them type:unix> makeExample usages:unix> ./ishow 0x27Hex = 0x00000027, S igned = 39, Unsigned = 39unix> ./ishow 27Hex = 0x0000001b, S igned = 27, Unsigned = 27unix> ./fshow 0x15213243Floating point value 3.255334057e-26Bit Representation 0x15213243, sign = 0, exponent = 0x2a, fraction = 0x213243 Normalized. +1.2593463659 X 2^(-85)linux> ./fshow 15213243Floating point value 2.131829405e-38Bit Representation 0x00e822bb, sign = 0, exponent = 0x01, fraction = 0x6822bb Normalized. +1.8135598898 X 2^(-126)。

《计算机组成实验》

《计算机组成实验》

《计算机组成实验》实验报告An Experiment ReportofThe Organization of the Computers目录第一章部件实验1.1 总线传输实验1.2 运算器部件实验第二章整机实验2.1 设计要求2.2 实验原理2.3 指令系统设计2.4 逻辑接线表2.5 微指令架构设计2.6 调试程序2.7 应用程序第三章附录3.1 体会与建议3.2 程序设计探讨第一章部件实验1.1总线传输实验1.1.1实验要求把两个数据分别写入74373和74374中,再使用RAM作中间单元来交换这两个数据。

1.1.2实验原理本实验涉及的相关逻辑单元有:总线,6116 (内存,RAM ), 74245 (缓存,Buffer),74244 (8位三态门),74377 (D触发器),74374 (D触发器)及74373 (三态透明锁存器)。

总线IDB7〜IDB0为实验箱内部总线,实验中通常将其与L7〜L0连接来指示总线各数据位电平高低。

RAM ,即6116,为2048X 8位的静态RAM 电路,其地址线为IAB10〜IAB0,共11位,其中最高位IAB10固定接地为0。

RC为有效读信号,WC为有效写入信号,低电平有效。

Buffer为74245,有E和DIR两个引脚,E接RF,当实验中实验仪通电并按下STEP按键后,RF=0使得E有效从而Buffer有效。

而引脚DIR控制导通方向,DIR为0时由RAM到总线,实现读;DIR为1时由总线到RAM ,实现写。

74244 (8位三态门),OE为输出使能端,低电平有效。

输入接K7〜K0 (8位开关表征8位数据),输出接内部总线。

输出有效时,把K7〜K0的数据输入到总线上。

74377 (D触发器),CK 为上跳有效时钟,EN为输入允许端(实验中恒接为0即恒有效),输入接内部总线,输出接L8〜L15,用二极管来表征8位数字。

74373 (三态透明锁存器),GT为接数门控端,OE为输出控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.一个不为0的数原数和相反数相或的结果符号位必然为1;0原数和相反数相或的结果符号位必然为0;
val+=(val>>8); //再将val的高8位加到低8位上
return val&0xff; //保留val的最低byte信息为最终结果
}
(5).bang函数,要求如下:
/*
* bang - Compute !x without using !
* Examples: bang(3) = 0, bang(0) = 1
* Bytes numbered from 0 (LSB) to 3 (MSB)
* Examples: getByte(0x12345678,1) = 0x56
* Legal ops: ! ~ & ^ | + << >>
* Max ops: 6
* Rating: 2
*/
#题目说明:要求从数X中取出第n个字节
* Legal ops: ! ~ & ^ | + << >>
* Max ops: 20
* Rating: 3
*/
#题目说明:用算术右移实现逻辑右移功能
#思路:
1、逻辑右移,高位补0。
2、不管是正数还是负数亦或是0,算术右移n位后位与&一个前n位为0,后面的位都为1的数(0000…1111(n个0)),都能把移位后高位的符号变为0(如果原来为0就保持不变);
课程实验报告
课程名称:计算机组成与结构
实验项目名称:Datalab
专业班级:
姓名:
学号:
指导教师:赵欢
完成时间:2016年4月12日
信息科学与工程学院
实验题目:Datalab
实验目的:按实验要求完善bit.c里的各个函数,实现其功能,并通过btest的测试
实验环境:联想ThinkPad E545,Ubuntu14(32位)
* Legal ops: ~ & ^ | + << >>
* Max ops: 12
* Rating: 4
*/
#题目说明:不施用!符号实现!x的功能(即!0=1,!(other number)=1);
#思路:
1.0的相反数仍为0。
2.其他整数的相反数符号位位必然与原数相反(原数和相反数必然符号位是其中1个为0,另一个为1);
3.获得一个前位为0的数:将(1 <<31)得到0x80000000,算术右移n-1位,即((1<<31)>>n)<<1;得到一个前n位为1,后32-n为0的数(1111…0000(n个1)),再按位取反~(((y<<31)>>n)<<1)得到一个前n位为0,后32-n为1的数(0000…1111(n个0)),再&(x>>n)即可实现逻辑右移;
#思路:
1.首先,将需要保留的字节移到最低位字节(编号为00的字节)上,即右
移n个byte(每个byte有8位),也就是n*8(n<<3)位;
2.清除高三位字节的信息而保留最低位字节的信息,即与0xff进行&运算即可。
#代码:
int getByte(int x, int n) {
return x>>(n<<3)& 0xff;
实验内容及操作步骤:
第一步:完善bits.c里的各个函数,代码如下:
(1).bitAnd函数,要求如下:
/*
* bitAnd - x&y using only ~ and |
* Example: bitAnd(6, 5) = 4
* Legal ops: ~ |
* Max ops: 8
* Rating: 1
#代码:
int logicalShift(int x, int n) {
int y=1;
return (~(((y<<31)>>n)<<1))&(x>>n);
}
(4).bitCount函数,要求如下:
/*
* bitCount - returns count of number of 1's in word
* Examples: bitCount(5) = 2, bitCount(7) = 3
* Legal ops: ! ~ & ^ | + << >>
* Max ops: 40
* Rating: 4
*/
#题目说明:返回32位数字串中1的个数;
#思路:
1.依次检测x的每一位,ops会超出所给限操作符数;
*/
#题目说明:不使用&符号实现两个数的位与运算;
#思路:德摩根定律
~(x & y) = (`x) |(~y)(x & y) =~((`x) |(~y))
#代码:
int bitAnd(int x, int y) {
return ~((~x)|(~y));
(2).getByte函数,要求如下:
/*
* getByte - Extract byte n from word x
val+=tmp&(x>>2); //...
val+=tmp&(x>>3);
val+=tmp&(x>&x>>5);
val+=tmp&(x>>6);
val+=tmp&(x>>7); //检测x的7,15,23,31位是否为1
val+=(val>>16); //将val的高16位加到低16位上
}
(3).logicalShift函数,要求如下:
/*
* logicalShift - shift x to the right by n, using a logical shift
* Can assume that 0 <= n <= 31
* Examples: logicalShift(0x87654321,4) = 0x08765432
2.类似,由于bitcount结果不会超过32,故可以利用一个32位二进制数
3.将每次的检测位数设定为4位的;
4.初始化tmp=0x1111,用来依次检测x>>i的0,8,16,24位是否为1;
5.利用val累加分别计算4个字节上1的个数,val的每个字节的值为对应
x每个字节上的1的个数;
6.最后将得到val四个字节的值相加,即x四个字节上1的个数的和,保留
最低字节的信息,为最后结果。
#代码:
int bitCount(int x) {
int tmp=(((0x01<<8|0x01)<<8|0x01)<<8|0x01)<<8|0x01;
int val=tmp&x; //检测x的0,8,16,24位是否为1
val+=tmp&(x>>1); //检测x的1,9,17,25位是否为1
相关文档
最新文档