文档库 最新最全的文档下载
当前位置:文档库 › 实验报告答案

实验报告答案

实验报告答案
实验报告答案

实验2:MIPS指令系统和MIPS体系结构

一.实验目的

(1)了解和熟悉指令级模拟器

(2)熟悉掌握MIPSsim模拟器的操作和使用方法

(3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解

(4)熟悉MIPS体系结构

二. 实验内容和步骤

首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。(1)、启动MIPSsim(用鼠标双击MIPSsim.exe)。

(2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。

(3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。

可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。

(4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。

(5)、查看“寄存器”窗口PC寄存器的值:[PC]=0x00000000。

(6)、执行load和store指令,步骤如下:

1)单步执行一条指令(F7)。

2)下一条指令地址为0x00000004,是一条有 (有,无)符号载入字节 (字节,半字,字)指令。

3)单步执行一条指令(F7)。

4)查看R1的值,[R1]= 0xFFFFFFFFFFFFFF80 。

5)下一条指令地址为0x00000008,是一条有 (有,无)符号载入字 (字节,半字,字)指令。

6)单步执行1条指令。

7)查看R1的值,[R1]=0x0000000000000080 。

8)下一条指令地址为0x0000000C ,是一条无 (有,无)符号载入字节 (字节,半字,字)指令。

9)单步执行1条指令。

10)查看R1的值,[R1]= 0x0000000000000080 。

11)单步执行1条指令。

12)下一条指令地址为0x00000014 ,是一条保存字 (字节,半字,字)指令。

13)单步执行一条指令。

14)查看内存BUFFER处字的值,值为 0x000080

(7)、执行算术运算类指令。步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为2。

2)双击“寄存器”窗口中的R2,将其值修改为3。

3)单步执行一条指令。

4)下一条指令地址为0x00000020 ,是一条加法指令。

5)单步执行一条指令。

6)查看R3的值,[R3]= 0x0000000000000005 。

7)下一条指令地址为0x00000024 ,是一条乘法指令。

8)单步执行一条指令。

9)查看LO、HI的值,[LO]= 0x0000000000000006 ,[HI]= 0x0000000000000000。

(8)、执行逻辑运算类指令。步骤如下:

1)双击“寄存器”窗口中的R1,将其值修改为0XFFFF0000。

2)双击“寄存器”窗口中的R2,将其值修改为0XFF00FF00。

3)单步执行一条指令。

4)下一条指令地址为0x000030,是一条逻辑与运算指令,第二个操作数寻址方式是寄存器直接寻址(寄存器直接寻址,立即数寻址)。

5)单步执行一条指令。

6)查看R3的值,[R3]= 0x00000000FF000000。

7)下一条指令地址为0x00000034,是一条逻辑或指令,第二个操作数寻址方式是立即数寻址(寄存器直接寻址,立即数寻址)。

8)单步执行一条指令。

9)查看R3的值,[R3]= 0x0000000000000000。

(9)、执行控制转移类指令。步骤如下:

1)双击“寄存器”窗口中R1,将其值修改为2。

2)双击“寄存器”窗口中R2,将其值修改为2。

3)单步执行一条指令。

4)下一条指令地址为0x00000040,是一条BEQ指令,其测试条件是两操作数相等,目标地址为0x 。

5) 单步执行1条指令。

6) 查看PC的值,[PC]=0x0000004C,表明分支成功(成功,失败)。

7) 一条指令是一条BGEZ指令,其测试条件是大于等于0 ,目标地址为0x00000058 。

8) 单步执行1条指令。

9) 查看PC的值,[PC]= 0x00000058,表明分支成功 (成功,失败)。

10) 下一条指令是一条BGEZAL指令,其测试条件是大于等于0 ,目标地址为0x00000064。

11) 单步执行1条指令。

12) 查看PC的值,[PC]= 0x00000064,表明分支成功(成功,失败);查看R31的值,[R31]=0x000000000000005C 。

13) 单步执行1条指令。

14)查看R1的值,[R1]=0x0000000000000074。

15)下一条指令地址为0x00000068,是一条JALR指令,保存目标地址的寄存器为R1 ,保存返回地址的目标寄存器为R3 。

16)单步执行1条指令。

17)查看PC和R3的值,[PC]=0x00000074,[R3]=0x000000000000006C。

实验3 流水线及流水线中的冲突

一.实验目的

(1)理解计算机流水线基本概念。

(2)理解MIPS结构如何用5段流水线来实现,理

(3)解各段的功能和基本操作。

(4)加深对数据冲突、结构冲突的理解,理解这两类冲突对CPU性能的影响。

(5)进一步理解解决数据冲突的方法,掌握如何应用定向技术来减少数据冲突引起的停顿。

二.实验内容和步骤

(1)、启动MIPSsim。

(2)、根据预备知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。(用鼠标双击各段,就可以看到各流水寄存器的内容)(3)、参照MIPSsim模拟器使用说明,熟悉MIPSsim模拟器的操作和使用方法。

可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中)。然后分别以单步执行一条周期、执行多个周期、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化,特别是流水寄存器内容的变化。

(4)、选择配置菜单中的“流水方式”选项,使模拟器工作于流水方式下。

(5)、观察程序在流水线中的执行情况,步骤如下:

1)选择MIPSsim的“文件”—>“载入程序”选项来加载pipeline.s。

2)关闭定向功能。这是通过“配置”—>“定向”。

3)用单步执行一个周期的方式执行该程序,观察每一个周期中,各段流水寄存器内容的变化、指令的执行情况(“代码”窗口)以及时钟周期图。

4)当执行到第13个时钟周期时,各段分别正在处理的指令是:

IF: LW $r4, 60($r6)

ID: ADDI $r3,$r0,25

EX: ADDI $r1,$r1,-1

MEM: ADDI $r6,$r0,8

WB: ADD $r2,$r1,$r0

画出这时的时钟周期图。

(6)、这时各流水寄存器中的内容为:

IF/ID.IR: 2361655356

IF/ID.NPC: 48

ID/EX.A: 0

ID/EX.B: 0

ID/EX.IR: 25

ID/EX.Imm: 537067545

EX/MEM.ALUo: 4

EX/MEM.IR: 539099135

MEM/WB.LMD: 0

MEM/WB.ALUo: 8

MEM/WB.IR: 37264136

(7)、观察和分析结构冲突对CPU性能的影响,步骤如下:

1)加载structure_hz.s(在模拟器所在文件夹下的“样例程序”文件夹中)。

2)执行该程序,找出存在结构冲突的指令对以及导致结构冲突的部件。

根据始终周期图可知存在结构冲突的指令是浮点加法指令fadd,导致结构冲突的部件是浮点加法器

3)记录由结构冲突引起的停顿时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。

总周期数为52个,结构停顿周期数35个,占总执行周期数的67.30769%

4)把浮点加法器的个数改为4个。

5)再次重复步骤(1)~(3)的工作。

如上图,可知修改后结构冲突引起的停顿时钟周期数为2个,占总执行周期数的10.52632%

6)分析结构冲突对CPU性能的影响,讨论解决结构冲突的方法。

结构冲突出现的频率较高,导致的停顿使得CPU流水的效率下降,可以通过分别设置独立的指令存储器和数据存储器的方法,或者仍只是一个存储器,但采用两个分离的Cache,即指令Cache和数据Cache

(8)、观察数据冲突并用定向技术来减少停顿,步骤如下:

1)全部复位

2)加载data_hz.s

3)关闭定向功能。

4)单步执行一个周期,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突。

发生冲突的周期是4、6、7、9、10、13、14、17、18、20、21、25、26、28、29、32、33、36、37、39、40、44、45、47、48、51、52、55、56、58、59

5)记录数据冲突引起的停顿时钟周期数及程序执行的总时钟周期数,计算停顿时钟周期数占总执行周期数的百分比。

总时钟周期数65,其中数据冲突引起的停顿时钟周期数为31,占总周期数的47.69231%。

6)复位CPU。

7)打开定向功能。

8)单步执行一个周期,同时查看时钟周期图,列出在什么时刻发生了RAW(先写后读)冲突,并与步骤(3)的结果进行比较。

发生冲突的周期为5、10、13、18、22、25、30、34、37,共9个

9)记录由数据冲突引起的停顿时钟周期数以及程序执行的总时钟周期数,计算采用定向技术后的性能是原来的几倍。

程序执行的总周期数为43,其中数据冲突引起的停顿数为9个,采用定向技术后性能是原来的65/43=1.51倍

实验4 指令调度和延迟分支

一.实验目的

(1)加深对指令调度技术的理解。

(2)加深对延迟分支技术的理解。

(3)熟练掌握用指令调度技术解决流水线中的数据冲突的方法。

(4)进一步理解指令调度技术对CPU性能的改进。

(5)进一步理解延迟分支技术对CPU性能的改进。

二.实验内容和步骤:

(1)、启动MIPSsim。

(2)、根据前面的相关知识中关于流水线各段操作的描述,进一步理解流水线窗口中各段的功能,掌握各流水寄存器的含义。

(3)、选择“配置”->“流水方式”选项,使模拟器工作于流水方式下。

(4)、用指令调度技术解决流水线中的数据冲突。

1)启动MIPSsim。

2)加载schedule.s。

3)关闭定向功能。

(4)执行所载入的程序。通过查看统计数据和时钟周期图,找出并记录程序执行过程中各种冲突发生的次数、发生冲突的指令组合以及程序执行的总时钟周期数。

由执行结果可知,程序执行总时钟周期数为33。

观察程序执行的时钟周期图可知,发生停顿的指令组合如下:第1对指令组合

LW $r2,0($r1)

ADD $r4,$r0,$r2

第2对指令冲突

ADD $r4,$r0,$r2

SW $r4,0($r1)

第3对指令冲突

SW $r4,0($r1)

LW $r6,4($r1)

第4对指令冲突

ADD $r8,$r6,$r1

MUL $r12,$r10,$r1

第5对指令冲突

ADD $r16,$r12,$r1

ADD $r18,$r16,$r1

第6对指令冲突

ADD $r18,$r16,$r1

SW $r18,16($r1)

第7对指令冲突

SW $r18,16($r1)

LW $r20,8($r1)

第8对指令冲突

MUL $r22,$r20,$r14

MUL $r24,$r26,$r14

(5)采用指令调度技术对程序进行指令调度,消除冲突。将调度后的程序存到after-schedule.s中。

(6)载入after-schedule.s。

(7)执行该程序。观察程序在流水线中的执行情况,记录程序执行的总时钟周期数。

由执行结果可知,改进后的程序执行时钟周期总数为17。

(8)根据记录结果,比较调度前和调度后的性能。论述指令调度对于提高CPU性能的作用。

很明显,指令调度后时钟总周期数从33降低到17,通过使用指令调度技术显著地提高了CPU的使用率,大大减少了指令冲突的次数,对提高CPU性能有很大的作用。

5、用延迟分支减少分支指令对性能的影响。

(1)启动MIPSsim。

(2)载入branch.s。

(3)关闭延迟分支功能。

(4)执行该程序。观察并记录发生分支延迟的时刻。

发生延迟分支的时刻依次为第6、9、13、21、24、28时钟周期。

(5)记录执行该程序所用的总时钟周期数。

由执行结果可知,该程序所执行总时钟周期数为38,ID段执行了18条指令。(6)假设延迟槽有1个,对branch.s进行指令调度,然后保存到“delayed-branch.s”中。(7)载入delayed-branch.s。

(8)打开延迟分支功能。

(9)执行该程序。观察其时钟周期图。

(10)记录执行该程序所用的总时钟周期数。

由执行结果可知,该程序所执行总时钟周期数为25,ID段执行了19条指令。(11)对比上述两种情况下的时钟周期图。

(12)根据记录结果,比较没采用延迟分支和采用了延迟分支的性能之间的不同。

论述延迟分支对于提高CPU性能的作用。

对比两种情况的时钟周期总数可知,在使用延迟槽后,指令在运行到跳转指令附近时,在期望概率上很大部分可能不会出现延迟等待,故能够稍微提高CPU性能,但是在跳转指令较多的程序中,此方法更为实用。

实验报告4的参考解答

系别:班号:学号:姓名: 日期:年月日地点:楼室 实验4 交换机堆叠和级联 1.交换机堆叠有什么优点?锐捷交换机堆叠对设备有什么限制和要求? 答:交换机的优点: 1.扩展端口密度。 2.方便用户的管理操作。 3.扩展上链带宽。 对设备的要求和限制: 1.只允许S2126G和S2150G二层交换机进行堆叠,不允许二、三层交换机混合 堆叠,或者三层交换机进行堆叠。 2.交换机堆叠数量最多为8台交换机。 3.SPAN限制:在堆叠模式下,每个SPAN会话成员端口局限于同一个UNIT, 不能跨UNIT,但支持多个SPAN会话,每个UNIT可以设置一个SPAN会话。 4.流控限制不同UNIT之间的端口,流控不生效。 5.保护口: 当设置的保护口在不同的UNIT时,它们的交换间隔会失效,不同 UNIT上的保护口之间仍然可以通信。 注:不同厂商的产品之间不能堆叠,3、4、5是关于堆叠对镜像、流控、保护模式的限制和影响现在可以不考虑。 2.如何确定堆叠组的堆叠主机? 答: 1.在telnet控制台键入命令行,设置交换机的device-priority,优先级最高的交换 机为堆叠主机。 2.当堆叠组中交换机的优先级相同时,系统自动选择网卡号最小交换机作为堆叠 主机。 3.如何进行菊花堆叠的拓扑连接?堆叠组里的设备如何编号? 答: 菊花链式堆叠模块有两个接口UP、DOWN。堆叠连接时,将堆叠主机的DOWN接口连接成员交换机的UP接口,以此类推,最后1台交换机的DOWN接口连接第1台交换机的UP接口,形成一个环路,可以起到冗余链路的作用。 确定设备编号: 1.确认主机主机为设备1 2.根据堆叠线连接确定堆叠中的设备和排列顺序。 3.主机堆叠模块的DOWN口连接的设备为设备2 4.设备2堆叠模块DOWN口连接的设备为设备3 以此类推 4.交换机工作模式有哪些,通过实验描述你对工作模式的体会?(什么情况下系统在什么模式下工作?工作模式如何转换?) 答:单机模式堆叠模式 当交换机单独接入网络是采用单机模式进行工作。对同类型的交换机进行堆叠,设备配

实验报告9答案

实验报告 课程名称:高级语言程序设计 实验九:函数与数组 班级: 学生姓名: 学号: 专业: 指导教师: 学期:2010-2011学年上学期 云南大学信息学院

一、实验目的 1、掌握数组作为参数的函数编写与调用方法 2、掌握数组作为参数的特殊性 3、掌握字符串作为参数的函数编写与调用方法 二、知识要点 1、地址传递的概念及使用 2、数组元素和数组名作为函数参数的特点与区别 3、字符串作为参数的特点:‘\0’字符的使用 三、实验预习(要求做实验前完成) 1、数组作为函数参数时,其特殊性是 2、定义作为参数的函数时,通常需要提供长度作为参数;而定义 作为参数的函数时,通常不需要提供长度参数 3、写出满足如下要求函数的函数首部: ①函数名为fmax,求一个实型数组的最大元素值: ②函数名为scount,求一个字符串中大写字母的个数: ③函数名为delf,删除一个字符串的第一个字符: 四、实验内容 1、编写一个函数,其功能是将字符串中的大写字母改为小写字母,其他字 符不变。 2、编写一个函数,求出给定的二维数组中每一行最大的元素,并显示出来。 3、在主函数中输入N个人的某门课程的成绩,分别用函数求:①平均分、最 高分和最低分;②分别统计90~100分的人数、80~89分的人数、70~ 79分的人数、60~69分的人数及59分以下的人数。结果在主函数中输出。 五、实验结果(要求写出运行界面及输出的运行结果) 六、实验小结

1.#include #include void change(char a[]) {int i; for(i=0;i='A'&&a[i]<='Z') a[i]+=32; } void main() {char c[30],k; printf("请输入一个包含大写字母的字符串:\n"); gets(c); change(c); puts(c); } 2.#include void max(int b[3][3]) {int i,j,max[3]; for(i=0;i<3;i++) max[i]=b[i][0]; for(i=0;i<3;i++) for(j=0;j<3;j++) if(b[i][j]>max[i]) max[i]=b[i][j]; for(i=0;i<3;i++) printf("第%d行最大值为:%d\n",i+1,max[i]); printf("\n"); } void main() {int i,j,a[3][3]; printf("输入3行3列的数组:"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("数组元素为:\n"); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); } max(a); } 3. #include

大学物理实验报告及答案

(此文档为word格式,下载后您可任意编辑修改!) 大学物理实验报告答案大全(实验数据及思考题答案全包括) 伏安法测电阻 实验目的(1) 利用伏安法测电阻。 (2) 验证欧姆定律。 (3) 学会间接测量量不确定度的计算;进一步掌握有效数字的概念。 U 实验方法原理根据欧姆定律,R =,如测得U 和I 则可计算出R。值得注意的是,本实验待测电阻有两只, I 一个阻值相对较大,一个较小,因此测量时必须采用安培表内接和外接两个方式,以减小测量误差。 实验装置待测电阻两只,0~5mA 电流表1 只,0-5V 电压表1 只,0~50mA 电流表1 只,0~10V 电压表一只,滑线变阻器1 只,DF1730SB3A 稳压源1 台。 实验步骤本实验为简单设计性实验,实验线路、数据记录表格和具体实验步骤应由学生自行设计。必要时,可提示学生参照第2 章中的第2.4 一节的有关内容。分压电路是必须要使用的,并作具体提示。 (1) 根据相应的电路图对电阻进行测量,记录U 值和I 值。对每一个电阻测量3 次。 (2) 计算各次测量结果。如多次测量值相差不大,可取其平均值作为测量结果。 (3) 如果同一电阻多次测量结果相差很大,应分析原因并重新测量。 数据处理 (1) 由?U =U max ×1.5% ,得到?U 1 = 0.15V,?U2 = 0.075V ; (2) 由?I = I max ×1.5% ,得到?I 1 = 0.075mA,?I 2 = 0.75mA; (3) 再由u= R ( ?U )2 + ( ?I ) 2 ,求得u= 9 ×101?, u= 1?; R 3V 3I R1 R2 (4) 结果表示R1 = (2.92 ± 0.09) ×10光栅衍射实验目的 (1) 了解分光计的原理和构造。 (2) 学会分光计的调节和使用方法。?, R 2 = (44 ±1)? (3) 观测汞灯在可见光范围内几条光谱线的波长实验方法原理

数据结构实验一 实验报告

班级::学号: 实验一线性表的基本操作 一、实验目的 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 二、实验容 定义一个包含学生信息(学号,,成绩)的顺序表和链表(二选一),使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据进行查找,返回此学生的学号和成绩; (4) 根据指定的位置可返回相应的学生信息(学号,,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录; (7) 统计表中学生个数。 三、实验环境 Visual C++ 四、程序分析与实验结果 #include #include #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2

typedef int Status; // 定义函数返回值类型 typedef struct { char num[10]; // 学号 char name[20]; // double grade; // 成绩 }student; typedef student ElemType; typedef struct LNode { ElemType data; // 数据域 struct LNode *next; //指针域 }LNode,*LinkList; Status InitList(LinkList &L) // 构造空链表L { L=(struct LNode*)malloc(sizeof(struct LNode)); L->next=NULL; return OK;

10-11-2实验报告(答案)

. 《C程序设计》 实验报告 学期:2010--2011学年第二学期 教师姓名: 教研室:

实验1 熟悉C语言程序的运行环境,掌握数据描述 1.1 实验目的 1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。 2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。 3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。 1.2 实验预习 1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。 2.了解下列命令及函数:include、main、printf、scanf。 3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。 4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。 int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。 6.常量与变量的区别和联系。 运行环境: 1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始——>程序——> Microsoft Visual Studio 6.0——>Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\MSDEV.EXE"。 2.单击“文件”菜单的“新建”命令。 3.在打开的“新建”对话框中选择“文件”标签。 4.选择C++ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如first.c) ,单击确定按钮。如图所示: 5.在源窗口中输入源程序,如图所示。

实验1实验报告

实验一词法分析 班级:计科12-3 学号:08123282 姓名:樊鑫 一.实验目的 1、学会针对DFA转换图实现相应的高级语言源程序。 2、深刻领会状态转换图的含义,逐步理解有限自动机。 3、掌握手工生成词法分析器的方法,了解词法分析器的内部工作原理。 二.实验内容 TINY计算机语言的编译程序的词法分析部分实现。 从左到右扫描每行该语言源程序的符号,拼成单词,换成统一的内部表示(token)送给语法分析程序。 为了简化程序的编写,有具体的要求如下: (1)数仅仅是整数。 (2)空白符仅仅是空格、回车符、制表符。 (3)代码是自由格式。 (4)注释应放在花括号之内,并且不允许嵌套 三.实验要求 要求实现编译器的以下功能: (1)按规则拼单词,并转换成二元式形式 (2)删除注释行 (3)删除空白符 (空格、回车符、制表符) (4)列表打印源程序,按照源程序的行打印,在每行的前面加上行号,并且打印出每行包含的记号的二元形式 (5)发现并定位错误 ,词法分析进行具体的要求: (1)记号的二元式形式中种类采用枚举方法定义;其中保留字和特殊字符是每个都一个种类,标示符自己是一类,数字是一类;单词的属性就是表示的字符串值。

(2)词法分析的具体功能实现是一个函数GetToken(),每次调用都对剩余的字符串分析得到一个单词或记号识别其种类,收集该记号的符号串属性,当识别一个 单词完毕,采用返回值的形式返回符号的种类,同时采用程序变量的形式提供 当前识别出记号的属性值。这样配合语法分析程序的分析需要的记号及其属性, 生成一个语法树。 (3)标示符和保留字的词法构成相同,为了更好的实现,把语言的保留字建立一个表格存储,这样可以把保留字的识别放在标示符之后,用识别出的标示符对比 该表格,如果存在该表格中则是保留字,否则是一般标示符。 四.实验程序 #include #include #include #include #include using namespace std; enum WordType {WRONG, NUMBER, BIAOSHI, IF, THEN, ELSE, END, REPEAT, UNTIL, //9 READ, WRITE, PLUS, SUBTRACT, MULTIPLY, DIVIDEY, EQUAL, LESSTHAN, COLON,//18 ASSIGNMENT, LINE_FEED, SPACE, TAB, BRACKET_L, BRACKET_R}; //24 enum CharType {ALPHABET, OTHER}; enum WrongType {ZERO, ALP_NUM, NUM_ALP, UNLEAGL_S, NO_MA TCH, UNKNOW}; char *Words [] = {"wrong", "number", "biaoshi", "if", "then", "else", "end", "repeat", "until", //9 "read", "write", "+", "-", "*", "/", "=", "<", ":",//18 ":=", "\n", " ", " ", "{", "}"}; //24 typedef struct { char *str; int wordtype; }Two; char ArrayChar[100], cbuffer; int i=-1, numline = 1, wordtype; string LineChar; Two T; ifstream fp("source.txt",ios::in); int main () { void HandleAlphabet(); void HandleNumber (); void HandleOther (); if (!fp) cout<<"文件打开错误!"<

实验报告答案

实验2:MIPS指令系统和MIPS体系结构 一.实验目的 (1)了解和熟悉指令级模拟器 (2)熟悉掌握MIPSsim模拟器的操作和使用方法 (3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解 (4)熟悉MIPS体系结构 二. 实验内容和步骤 首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。(1)、启动MIPSsim(用鼠标双击MIPSsim.exe)。 (2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。 (3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。 可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。 (4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。 (5)、查看“寄存器”窗口PC寄存器的值:[PC]=0x00000000。 (6)、执行load和store指令,步骤如下: 1)单步执行一条指令(F7)。 2)下一条指令地址为0x00000004,是一条有 (有,无)符号载入字节 (字节,半字,字)指令。 3)单步执行一条指令(F7)。 4)查看R1的值,[R1]= 0xFFFFFFFFFFFFFF80 。 5)下一条指令地址为0x00000008,是一条有 (有,无)符号载入字 (字节,半字,字)指令。 6)单步执行1条指令。 7)查看R1的值,[R1]=0x0000000000000080 。 8)下一条指令地址为0x0000000C ,是一条无 (有,无)符号载入字节 (字节,半字,字)指令。 9)单步执行1条指令。 10)查看R1的值,[R1]= 0x0000000000000080 。 11)单步执行1条指令。 12)下一条指令地址为0x00000014 ,是一条保存字 (字节,半字,字)指令。 13)单步执行一条指令。

(完整版)大学物理实验报告答案大全

大学物理实验报告答案大全(实验数据及思考题答案全包括) 伏安法测电阻 实验目的(1) 利用伏安法测电阻。 (2) 验证欧姆定律。 (3) 学会间接测量量不确定度的计算;进一步掌握有效数字的概念。 实验方法原理根据欧姆定律, I R = U ,如测得U 和I 则可计算出R。值得注意的是,本实验待测电阻有两只, 一个阻值相对较大,一个较小,因此测量时必须采用安培表内接和外接两个方式,以减小测量误差。 实验装置待测电阻两只,0~5mA 电流表1 只,0-5V 电压表1 只,0~50mA 电流表1 只,0~10V 电压表一 只,滑线变阻器1 只,DF1730SB3A 稳压源1 台。 实验步骤本实验为简单设计性实验,实验线路、数据记录表格和具体实验步骤应由学生自行设计。必要时,可提示学 生参照第2 章中的第2.4 一节的有关内容。分压电路是必须要使用的,并作具体提示。 (1) 根据相应的电路图对电阻进行测量,记录U 值和I 值。对每一个电阻测量3 次。 (2) 计算各次测量结果。如多次测量值相差不大,可取其平均值作为测量结果。 (3) 如果同一电阻多次测量结果相差很大,应分析原因并重新测量。 数据处理 测量次数1 2 3 U1 /V 5.4 6.9 8.5 I1 /mA 2.00 2.60 3.20 R1 / Ω 2700 2654 2656

测量次数1 2 3 U2 /V 2.08 2.22 2.50 I2 /mA 38.0 42.0 47.0 R2 / Ω 54.7 52.9 53.2 (1) 由. % max ΔU =U ×1 5 ,得到U 0.15V , 1 Δ = U 0 075V Δ 2 = . ; (2) 由. % max ΔI = I ×1 5 ,得到I 0.075mA, 1 Δ = I 0 75mA Δ 2 = . ; (3) 再由2 2 3 3 ( ) ( ) I I V u R U R Δ Δ = + ,求得9 10 Ω 1Ω 2 1 1 = × = R R u , u ; (4) 结果表示= (2.92 ± 0.09)×10 Ω, = (44 ±1)Ω 2 3 1 R R 光栅衍射 实验目的 (1) 了解分光计的原理和构造。 (2) 学会分光计的调节和使用方法。 (3) 观测汞灯在可见光范围内几条光谱线的波长

实验1实验报告-

实验1 Windows编程基础实验报告 一、实验目的和要求 (1)创建一个Win32应用程序Ex_SDK,在程序中构造一个编辑框控件和一个按钮。 (2)编辑框用于输入一元二次方程的系数,当单击“计算”按钮,获取方程系数得的根通过TextOut显示在窗口客户区中。 二、实验环境 操作系统:Windows 2000 编译器:Visual C++ 6.0的开发环境 三、实验准备和说明 (1)具备知识:简单的SDK编程基础。 (2)准备本次上机所需要的程序。 (3)创建本次实验工作文件夹“…\Visual C++程序\实验\实验1” 四、实验内容和步骤 1.启动Visual C++ 6.0 打开计算机,启动Visual C++ 6.0系统。 2.创建工程并添加代码 ①选择“文件”→“新建”菜单命令,打开应用程序向导,显示出“新建”对话框。单击“工程”标签,从列表框中选中Win32 Application(Win32 应用程序)项。在工程名称框中输入Win32应用程序项目名称Ex_SDK。单击浏览按钮...将工程定位到文件夹“…\Visual C++ 6.0程序\实验\实验1”。 ②单击“确定”按钮继续。在向导第一步对话框中,选中An empty project(一个空的工程)项。单击“完成”按钮,系统将显示AppWizard(应用程序向导)的创建信息,单击“确定”按钮,系统将自动创建此应用程序。 ③再次选择“文件”→“新建”菜单命令,显示出“新建”对话框。单击“文件”标签,在左边的列表框中选择C++ Source File项,在右边的“文件”下的编辑框中输入Ex_SDK.cpp,单击“确定”按钮。 ④在打开的文档窗口中输入下面的代码: #include #include #include // 求一元二次方程的根,函数返回根的个数 int GetRoot(float a, float b, float c, double *root) { double delta, deltasqrt; delta = b*b - 4.0 * a * c; if (delta<0.0) return 0; // 无根 deltasqrt = sqrt(delta);

大学物理实验报告答案大全(实验数据)

U 2 I 2 大学物理实验报告答案大全(实验数据及思考题答案全包括) 伏安法测电阻 实验目的 (1) 利用伏安法测电阻。 (2) 验证欧姆定律。 (3) 学会间接测量量不确定度的计算;进一步掌握有效数字的概念。 实验方法原理 根据欧姆定律, R = U ,如测得 U 和 I 则可计算出 R 。值得注意的是,本实验待测电阻有两只, 一个阻值相对较大,一个较小,因此测量时必须采用安培表内接和外接两个方式,以减小测量误差。 实验装置 待测电阻两只,0~5mA 电流表 1 只,0-5V 电压表 1 只,0~50mA 电流表 1 只,0~10V 电压表一 只,滑线变阻器 1 只,DF1730SB3A 稳压源 1 台。 实验步骤 本实验为简单设计性实验,实验线路、数据记录表格和具体实验步骤应由学生自行设计。必要时,可提示学 生参照第 2 章中的第 2.4 一节的有关内容。分压电路是必须要使用的,并作具体提示。 (1) 根据相应的电路图对电阻进行测量,记录 U 值和 I 值。对每一个电阻测量 3 次。 (2) 计算各次测量结果。如多次测量值相差不大,可取其平均值作为测量结果。 (3) 如果同一电阻多次测量结果相差很大,应分析原因并重新测量。 数据处理 (1) 由 U = U max ? 1.5% ,得到 U 1 = 0.15V , U 2 = 0.075V ; (2) 由 I = I max ? 1.5% ,得到 I 1 = 0.075mA , I 2 = 0.75mA ; (3) 再由 u R = R ( 3V ) + ( 3I ) ,求得 u R 1 = 9 ? 101 &, u R 2 = 1& ; (4) 结果表示 R 1 = (2.92 ± 0.09) ?10 3 &, R 2 = (44 ± 1)& 光栅衍射 实验目的 (1) 了解分光计的原理和构造。 (2) 学会分光计的调节和使用方法。 (3) 观测汞灯在可见光范围内几条光谱线的波长 实验方法原理

实验1实验报告格式

实验1实验报告格式 《计算机图形学》实验1实验报告 实验题目:用户坐标、视图坐标、Java awt坐标概念的建立和应用 实验内容:掌握用户坐标、视图坐标、Java awt坐标概念,掌握三类坐标的转换算法。编写自己的算法函数,并形成Java语言程序包。编写程序调用验证之。 参考程序:有两个示范程序MyTest.java和MyLineDrawApplet.java 基本概念: 用户坐标:是独立于设备的逻辑坐标,可以是用户用来定义设计对象的各种坐标。 应用程序使用该坐标系:所有传给Java 2D渲染过程的坐标都是指用户坐标。例如下面程序中的默认用户坐标的范围是X轴从-1到1,Y轴也是凑够-1到1。 视图坐标:是设备相关的坐标,随目标渲染设备不同而不同。下面程序中定义的视图坐标的缺省值为(0,0)和(1,1)。 Java awt坐标:使用java.awt时使用的坐标,即窗口显示图像时的边界坐标。 填充:这个过程可以抽象的理解为以已知的线为中心,向周围扩展像素,然后对这些像素所在的方块进行着色。 将用户坐标转换为视图坐标实际上是将独立于设备的逻辑坐标转换为设备相关的坐标,将视图坐标转化为A WT坐标就是将视图坐标按照显示窗口的大小进行缩放。 算法设计:(详细叙述自己设计程序的功能、算法及实现) 程序的功能: 可以根据传入的用户坐标进行视图坐标、A WT坐标之间的转换,其反向转换同理也可以实现,即将转换的方法逆过去即可。此外,程序还可以进行图形的绘画和填充,比如矩形、椭圆、多边形等。 算法及其实现函数: 用户坐标到视图坐标的转换:对于相应的用户坐标应用数学中的平移与放缩,就可以得到视图坐标。具体方法如下:在用户坐标系下,设矩形窗口的左下角坐标为(Ux1,Uyb), 右上角为(Uxr,Uyt),视图坐标系下的两个点坐标分别为(Vx1,V yb)和(Vxr,V yt), 则视图坐标的表达式为:(Xu,Y u)是已知的用户坐标,(Xv ,Y v)是要求的视图坐标Xv=aXu+b Y v=cY u+d 其中:a=(Vxr-Vxl)/(Uxr-Uxl) b=Vxl-aUxl c=(V yt-V yb)/(Uyt-Uyb) d=V yb-cUyb //将用户坐标的点转换到视图坐标 public double view_x(double x) { double s=(x-user_i_x)/(user_a_x- user_i_x); double t=view_i_x[currentV iew]+s* //坐标的平移及压缩 (view_a_x[currentView]-view_i_x[currentV iew]); return t; } public double view_y(double y) { double s=(y-user_i_y)/(user_a_y-user_i_y); double t=view_i_y[currentV iew]+s* //坐标的平移及压缩 (view_a_y[currentView]-view_i_y[currentV iew]); return t; } 视图坐标到A WT坐标的转换:由于视图坐标在0到1之间,因此将显示窗口的宽和高

2010C语言实验报告参考答案

2010C语言实验报告参考答案

长沙理工大学2010C语言实验报告参考答案 实验一熟悉C语言程序开发环境及数据描述四、程序清单 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 答案: #include main() { printf("The dress is long\n"); printf("The shoes are big\n"); printf("The trousers are black\n"); } 2.改错题(将正确程序写在指定位置) 正确的程序为: #include main() {

printf("商品名称价格\n"); printf("TCL电视机¥7600\n"); printf("美的空调¥2000\n"); printf("SunRose键盘¥50.5\n"); } 2.编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 答案: #include main() { int a,b,c,x,y; a=150; b=20; c=45; x=a/b; y=a/c; printf("a/b的商=%d\n",x); printf("a/c的商=%d\n",y);

x=a%b; y=a%c; printf("a/b的余数=%d\n",x); printf("a/c的余数=%d\n",y); } 4. 设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 答案: #include main() { int a,b,c; a=0; b=-10; c= (a>b) ? b:a;

10-11-2实验报告(答案)

《C程序设计》实验报告 学期:2010--2011学年第二学期 教师姓名: 教研室:

实验1 熟悉C语言程序的运行环境,掌握数据描述 实验目的 1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。 2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。 3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。 实验预习 1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。 2.了解下列命令及函数:include<>、main、printf、scanf。 3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。 4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。 int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。 6.常量与变量的区别和联系。 运行环境: 1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始——>程序——> Microsoft Visual Studio ——> Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\"。 2.单击“文件”菜单的“新建”命令。 3.在打开的“新建”对话框中选择“文件”标签。 4.选择C++ Source File,在目录输入栏选择文件保存位置,然后在文件输入栏中输入文件名,扩展名为.c (例如,单击确定按钮。如图所示:

电机学实验1实验报告

实验报告 课程名称:电机学指导老师:史涔溦成绩:__________________实验名称:直流电动机实验实验类型:验证性实验同组学生姓名: 一、实验目的和要求(必填)二、实验内容和原理(必填) 三、主要仪器设备(必填)四、操作方法和实验步骤 五、实验数据记录和处理六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1、进行电机实验安全教育和明确实验的基本要求 2、认识在直流电机实验中所用的电机、仪表、变阻器等组件 3、学习直流电动机的接线、起动、改变电机转向以及调速的方法 4、掌握用实验方法测取直流并励电动机的工作特性和机械特性 5、掌握直流并励电动机的调速方法 6、并励电动机的能耗制动 二、实验内容和原理 1、并励直流电动机起动实验 2、改变并励直流电动机转向实验 : 3、测取并励直流电动机的工作特性和机械特性 4、并励直流电动机的调速方法 三、主要仪器设备 1、直流电源(220V,3A,可调) 2、并励直流电动机 3、负载:测功机。与被测电动机同轴相连。 4、调节电阻。电枢调节电阻选取0-90欧,磁场调节电阻选取0—3000欧。 5、直流电压电流表。电压表为直流250V,电枢回路电流表量程,励磁回路电流表量程200mA。 四、操作方法与实验步骤 (1)并励直流电动机的起动实验 接线图: `

实验时,首先将电枢回路电阻调节到最大,因为起动初n=0,而端电压为额定值,如果电枢回路电阻过小那么会因电流过大而烧坏电机。其次应该Rf调节到最小,因为当电枢电流和电动势一定时,磁通量和转速是成反比的,如果磁场太弱,那么会造成很大的转速,从而造成危险。调节电源电压,缓缓启动电机,观察电动机的旋转方向是否符合负载的加载方向。最后逐步减小R1,实现分级起动,直到完全切除R1. 注意每次起动前,将测功机加载旋钮置0。实验完成后,将电压和测功机加载旋钮置0。 (2)改变并励直流电动机转向实验 改变转向,即改变导体的受力方向,则改变电枢电流或者磁场的方向都可以实现。因此对调励磁绕组或者电枢绕组的极性即可。重新起动,观察转向。 (3)测量并励直流电动机的工作特性和机械特性 1、完全起动电机并获取稳定转速,使得R1=0 2、将电动机调节到额定状态,调节电源电压测功机加载旋钮及磁场调节电阻R f ,至额定状态:U=U N , I=I N ,n=n N ,记下此时的I f ,即I fN 。 . 3、保持U=U N ,I f =I fN 不变,调测功机加载旋钮,逐渐减小电动机负载至最小,测I、n、T 2 。 (4)并励直流电动机的调速特性1、改变电枢电压调速 1) 按操作1起动后,切除电枢调节电阻R 1(R 1 =0)

C语言实验报告参考答案

《C语言程序设计》 实 验 手 册

《C语言程序设计》实验课程简介 课程名称:C语言程序设计实验 课程性质:专业必修课 课程属性:专业必修课 学时学分:学时32 学分1 开课实验室:软件实验室 面向专业:网络工程、软件工程、计算机科学与技术 一、课程的任务和基本要求 C语言程序设计实验是面向计算机相关专业学生开设的《C语言程序设计》实验课,是配合《C语言程序设计》课程而开设的实验性教育环节。本课程的主要任务是让学生充分掌握C 语言程序设计的基本概念、各种数据类型的使用技巧、模块化程序设计的方法等。C语言程序设计实验对课程中所涉及的知识进行验证,同时也是学生很好地学习课程的辅助手段。通过C语言上机实验的教学活动,使学生真正全面掌握C语言的基础知识,培养和提高学生的程序开发能力。 二、实验项目 【实验一】最简单的C程序---顺序程序设计 【实验二】逻辑运算和判断选取控制 【实验三】循环结构程序设计(一) 【实验四】循环结构程序设计(二) 【实验五】函数 【实验六】数组(一) 【实验七】数组(二) 【实验八】指针 【实验九】结构体、共用体和文件 【实验十】C程序综合性实验 三、有关说明 1、与其它课程和教学环节的联系: 先修课程:计算机文化 后续课程:面向对象程序设计、Java程序设计、数据结构、软件工程 2、教材和主要参考书目: (1)教材: 《C程序设计习题解答与上机指导》,谭浩强吴伟民著,北京:清华大学出版社,2003年。(2)主要参考书目: 《C语言程序设计》谭浩强主编,清华大学出版社,2003年。

三、实验内容 实验一最简单的C程序---顺序程序设计 (验证性实验 2学时) (一)、实验目的 1.熟悉win-tc程序运行环境 2.掌握运行一个C程序的步骤,理解并学会C程序的编辑、编译、链接方法 3.掌握C语言中使用最多的一种语句——赋值语句 4.掌握数据的输入输出方法,能正确使用各种格式控制符 (二)、实验内容 1.写出下列程序的运行结果 (1)#include void main() { printf(“*****************\n”); printf(“This is a c program. \n”); printf(“****************\n”); } 运行结果及分析:运行结果为: Printf函数语句表示输出引号内的字符串,最后的\n表示换行, 将程序中的\n去掉后,运行结果及分析:运行结果为: 去掉\n后不换行连续显示 (2)#include void main() { int a=100,b=20,sum,sb; sum=a+b; sb=a/b; printf("sum=%d,sb=%d",sum,sb); } 运行结果及分析: sum=100+20=120;sb=100/20=5. (3)#include void main( )

实验报告1——20111012

实验1:三大生物信息中心浏览、DOTPLOT 一、实验目的: 1. 了解三大生物信息中心的资源; 2. 学习分析DOT PLOTS比对结果。 二、实验内容: (一)、三大生物信息中心浏览 1. NCBI 2. EBL 3. DDBJ (二)、DOTPLOT 1. 了解demo sequence 了解软件使用方法; 2. 通过序列自身比对,寻找其重复和反向重复区域。 三、作业: 1. Introduce the following NCBI databases in your own words:MMDB, CDD, dbGap, PMC., OMIM, UniGene, PubChem, RefSeq. MMDB——分子模型数据库(Molecular model database) 一个关于三维生物分子结构的数据库,结构来自于X-ray晶体衍射和NMR色谱分析。MMDB 是来源于Brookhaven蛋白数据库(PDB)三维结构的一部分,排除了那些理论模型。MMDB重新组织和验证了这些信息,从而保证在化学和大分子三维结构之间的交叉参考。数据的说明书包括生物多聚体的空间结构,这个分子在化学上是如何组织的,以及联系两者的一套指针。利用将化学,序列,和结构信息整合在一起,MMDB计划成为基于结构的同源模型化和蛋白结构预测的资源服务。MMDB的记录以ASN.1格式存储,可以用Cn3D, Rasmol, 或Kinemage来显示。另外,数据库中类似的结构已经被用V AST确认,新的结构可以用V ASTsearch来同数据库进行比较。(https://www.wendangku.net/doc/0214550483.html,/Structure/MMDB/mmdb.shtml) CDD——蛋白质保留区序列数据库(Conserved Domain Database) 提供在分子演化过程中蛋白质保留区数据。资料来源为Smart资料库、Pfam数据库、研究人员提供的数据与MMDB数据库中已知3-D蛋白质结构的区域比对数据。藉由使用CD-Search工具,CDD可被用来鉴定蛋白质输入序列保留区;此外,CDART工具亦使用CDRPS-BLAST检索具相似区域结构的蛋白质。(https://www.wendangku.net/doc/0214550483.html,/Structure/cdd/cdd.shtml)dbGaP——基因型和表型数据库(The database of Genotypes and Phenotypes ) 此数据库开发的归档和分发的调查研究基因型和表型的相互作用的结果。这些研究包括全基因组关联研究,医疗测序,分子诊断方法,以及基因型和非临床特征之间的关联。 (https://www.wendangku.net/doc/0214550483.html,/gap) PMC——公共医学中心(PubMed Central) PMC是生命科学期刊文献的数字化文献馆,由美国国家医学图书馆(NLM)的国家生物技术信息中心(NCBI)开发和设计。PMC旨在扮演数字化时代世界级图书馆的角色。进入PMC是免费且不受限制的。PMC(包括Medline)是一个数据库精品,它可帮助研究者和临床医生们找到相关的文章,在多种情况下,还可直接链到全文出版者。(https://www.wendangku.net/doc/0214550483.html,/pmc/) OMIM——在线人类孟德尔遗传(Online Mendelian Inheritance in Man) 孟德尔遗传学(OMIM)数据库是人类基因和基因疾病的目录数据库。该数据库包括原文信息、图片和参考信息,同时还可以链接到Entrez系统MEDLINE数据库中相关文献和序列信息。经常更新人类基因和遗传失调的目录。OMIM的使用:根据输入到检索窗口的一个或几个词执行简单的查询;返回含有该词的文档的列表;选择一个或更多的异常查看其OMIM记录的全文。(https://www.wendangku.net/doc/0214550483.html,/omim/) UniGene——面向基因聚类数据库

计算机组成原理_实验报告四(含答案)

湖南科技学院 电子与信息工程学院 实验报告 课程名称: 姓名: 学号: 专业: 班级: 指导老师:

实验四微程序控制组成实验 一、实验目的及要求 1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机。 2.用微程序控制器控制模型计算机的数据通路。 3.执行给定的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。 二、实验电路 本次实验将前面几个实验中的所模块,包括运算器、存储器、通用寄存器堆等同微程序控制器组合在一起,构成一台简单的模型机。这是最复杂的一个实验,也将是最有收获的一个实验。 在前面的实验中,实验者本身作为“控制器”,完成了对数据通路的控制。而在本次实验中,数据通路的控制将交由微程序控制器来完成。实验机器从内存中取出一条机器指令到执行指令结束的一个指令周期,是由微程序完成的,即一条机器指令对应一个微程序序列。 实验电路大致如下面框图所示。其中控制器是控制部件,数据通路是执行部件,时序发生器是时序部件。需使用导线将各个部件控制信号与控制器相连。 三、实验主要仪器设备 1.TEC-5计算机组成实验系统1台 2.逻辑测试笔一支(在TEC-5实验台上) 四、实验任务 1.对机器指令组成的简单程序进行译码。将下表的程序按机器指令格式手工汇编成二进制机器代码, 此项任务请在预习时完成。 2. 3.使用控制台命令将寄存器内容初始化为:R0=11H,R1=22H,R2=0AAH。

4.使用控制台命令将任务1中的程序代码存入内存中(注意起始地址为30H),以及将内存地址为 11H的单元内容设置为0AAH。 5.用单拍(DP)方式执行一遍程序,执行时注意观察各个指示灯的显示并做好记录(完成实验表格), 从而跟踪程序执行的详细过程(可观察到每一条微指令的执行过程)。 6.用连续方式再次执行程序。这种情况相当于计算机正常的工作。程序执行到STP指令后自动停机。 读出寄存器中的运算结果,与理论值比较。 五、实验步骤和实验结果记录 1.程序译码。 2.实验接线(本实验接线比较多,需仔细) 只要把上表种同列的信号用线连接即可,一共接线33条。 接好线后,将编程开关拨到“正常位置”。合上电源,按CLR#按钮,使TEC-5实验实验系统处于初始状态。 3.实验任务3:使用控制台命令将寄存器内容初始化为:R0=11H,R1=22H,R2=0AAH的操作步骤及结果记录。 (1)掌握写寄存器WRF的原理和步骤(详见实验参考资料)。 (2)操作过程如下:

相关文档
相关文档 最新文档