机组实验报告_第1页
机组实验报告_第2页
机组实验报告_第3页
机组实验报告_第4页
机组实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、大连理工大学本科实验报告课程名称: 计算机组成原理实验 学院(系): 软件学院 专 业: 软件工程 班 级: 090 学 号: 学生姓名: 2011年 6 月 18 日 大连理工大学实验报告学院(系): 软件学院 专业: 软件工程 班级: 090 姓 名: 学号: 实验台: 实验时间: 2011. 实验室: C-108 成绩: 指导教师签字: 实验一:微程序控制计算机实验1. 实验目的: 了解微程序控制计算机的工作原理及实现方法、初步学会程序的流程图画法及程序的模块化设计、调试方法。2. 实验平台:硬件平台:复旦大学FD-MCES教学平台;软件平台:自己做汇编和Unidebbuger调试软件3

2、. 实验要求:(任务)1) 建立指令集文件(*.DEF 指令系统)2) 建立微程序文件(*.M19)3) 编写二位乘法程序,通过调试观察汇编指令在微程序控制计算机中的实施过程,学会程序设计中的流程图,模块化设计及调试方法。 ORG 0 STRT: JKB STRT LDA 8001H MOV R3,AL1: JKB L1 LDA 8001H MOV R2,A; 输入第一个两位数L2: JKB L2 LDA 8001H MOV R5,AL3: JKB L3 LDA 8001H MOV R4,A ; 输入第二个两位数L31: JPB L31 MOV A,#4 STA 8002H ;打印*号L4:

3、JPB L4 MOV A,#0AH STA 8002HL5: JPB L5 MOV A,R2 STA 8002HL6: JPB L6 MOV A,#10H ADD A,R3 STA 8002H; 输出第一个两位数L7: JPB L7 MOV A,#9 STA 8002H ;打印=号L8: JPB L8 MOV A,#0AH STA 8002HL9: JPB L9 MOV A,R4 STA 8002H;输出第二个两位数L10: JPB L10 MOV A,#10H ADD A,R5 STA 8002H ;打印两个操作数L11: MOV A,R3 ADD A,R2 ADD A,R3 ADD A,R

4、3 ADD A,R3 ADD A,R3 ADD A,R3 ADD A,R3 ADD A,R3 ADD A,R3 ADD A,R3 MOV R3,A; 将第一个两位数放到一个寄存器中 MOV A,R5 ADD A,R4 ADD A,R5 ADD A,R5 ADD A,R5 ADD A,R5 ADD A,R5 ADD A,R5 ADD A,R5 ADD A,R5 ADD A,R5 MOV R5,A;把第二个两位数放到一个寄存器中,使用的方法是将R5个R3相加等于这两位数相乘 MOV R7,#0 MOV R6,#0 JMP L13 R3与R5的相乘,个十位放在R6里,千百位放在R7里L12: MOV

5、 R0,#100 ADD A,R0 MOV R6,AL13: MOV A,R6 ADD A,R3 MOV R6,A MOV A,R5 MOV R0,#1 SUB A,R0 JC L14; 判断R5是否小于0,是则结束循环加 MOV R5,A MOV A,R6 MOV R0,#100 SUB A,R0 JC L12;判断R6是否大于100,若大于则R7+1,否则跳到L12,把多减的100还给R6 MOV R6,A MOV A,R7 MOV R0,#1 ADD A,R0 MOV R7,A JMP L13;循环操作L14: MOV A,R6 SUB A,R3 JC OVER1;因为多加了一次R3但是

6、为了防止相减之后借位(该情况有可能发生在实际的最后一次R6为90多再加一个两位数后超过100而把百位数给R7了,代表R7多加1了,需要还给R6用以减去最后一次多减的) MOV R6,A 下面是分离并打印部分L15: JPB L15 MOV A,#0AH STA 8002HL16: JPB L16 MOV A,#0AH STA 8002H; 相乘,R6为个十位,R7为千百位SPR:MOVA,R6MOVR0,#10MOVR2,#0MOVR3,#1CIRC:SUBA,R0JCOVER; 个十位分离,r1用来放十位数字MOVR1,AMOVA,R2ADDA,R3MOVR2,A MOV A,R1JMPCI

7、RCOUT: JPB OUT STA8002H MOV A,R2L22: JPB L22 STA 8002H JMPQIANOVER: ADDA,R0 MOV R1,A JMPOUT ;恢复运算结果,跳转到打印个位QIAN:MOVA,R7MOVR0,#10MOVR2,#0MOVR3,#1CIRC2:SUBA,R0JCOVER2 ;千百位分离,r1用来放百位数字MOVR1,AMOVA,R2ADDA,R3MOVR2,A MOV A,R1JMPCIRC2 OUT2: JPB OUT2 MOV A,R2 SUB A,R3 JC OUT3 ;判断千位是否为零,不是则继续打印 MOV A,R1 STA80

8、02H MOV A,R2L33: JPB L33 MOV R0,#10H ADD A,R0 STA8002H JMP STRT ; 打印千位OUT3: JPB OUT3 MOVA,R1 MOV R0,#10H ADD A,R0 STA 8002H JMPSTRTOVER2: ADDA,R0 MOV R1,A JMPOUT2 ;恢复运算结果,跳转到打印百位OVER1: MOV R0,#100 ADD A,R0 MOV R6,A MOV A,R7 MOV R0,#1 SUB A,R0 MOV R7,A JMP L154)实验原理图: 要求将CPU的各信号加方向标,延伸IR(指令寄存器)下面如何接微

9、程序控制部分以及各部件的控制端口与微指令发出口的联结 。5) 实验原理:要求通过一条具体汇编指令说明本实验计算机的工作原理及实现方法(从PC=0、MPC=0 形成开始说起,为什么程序可以连续执行?)指令:ADD A,RiPC=0,执行ADD命令,PC置为1,将A中数据存入ALU(累加器),当Ri数据到来,ALU把两个数据相加,结果由OB到达数据总线DB,再送回A中。因为此时,PC=1,所以它会继续执行下一条指令。6)实验操作步骤流程图。 该流程图应包括以下几个部分:(可以设为不是第一次使用,但要注意操作过程的实际情况而非理想情况)通过自己做汇编建立汇编指令集 载入成功后编写汇编程序打开impa

10、ct下载cpu目标程序bit文件并调试右击生成的cpu图标并program提示成功打开桌面的Unidebugger.exe,启动通用调试器,并修改系统参数下载汇编指令和微程序并调试用试验箱输入数据完成实验7)二位乘法程序流程图:要求分成3个部分 (1)数据输入、运算式打印部分(2)乘积运算部分(3)数据位的分离与打印结果部分将四个数分别存入任选的四个寄存器中打印*号,空格打印第一操作数的个位十位并换行打印=号打印空格,第二操作数的个位十位并换行进行寄存器运算,处理好进位以及加和关系打印结果数据3.体会、意见、建议这个实验是一个很有压力的实验,感觉比较难。必须充分的理解并掌握了打印机和汇编工具才

11、能有效的进行实验。另外老师的讲解很不错,很详细,解决了大部分的疑惑。更重要的一点是这是一个题量不小的程序,将我们分为几个人一组是一个很有创新的举动(目前来讲),不仅仅使我们能够减轻负担,还参与了集体分工的活动,也着实认识到了编程规范和注解的重要性,和自己在实际运作中的不足。大连理工大学实验报告学院(系): 软件学院 专业: 软件工程 班级: 090 姓 名: 学号: 实验台: 实验时间: 2011. 实验室: C-108 成绩: 指导教师签字: 实验二:监控程序与汇编实验4. 实验目的:(1)了解教学计算机的指令格式、指令编码、选择的寻址方式和具体功能。(2)了解汇编语言的语句与机器语言的指令

12、之间的对应关系,了解伪指令在汇编过程中的作用,学习用汇编语言设计程序的过程和方法。(3)学习教学机监控程序的功能、监控命令的使用方法,体会软件系统在计算机组成中的地位和作用。2. 实验平台硬件平台:清华大学TEC-XP实验箱的MACH部分软件平台:监控程序pec16.exe3. 实验要求:(任务)(1) 使用监控程序的R 命令显示/修改寄存器内容、D 命令显示存储器内容、E 命令修改存储器内容; 1) R ;显示寄存器的内容 2) R R0 ;修改寄存器R0 的内容,被修改的寄存器与所赋值之间可以无空格,也可有一个或数个空格 主机显示: 寄存器原值: 在该提示符下输入新的值0036再用R 命令

13、显示寄存器内容,则R0 的内容变为0036。 3) D 2000 会显示从2000H 地址开始的连续128 个字的内容; 连续使用不带参数的D 命令,起始地址会自动加128(即80H)。 4) E 2000:屏幕将显示2000H地址单元原有的内容,然后输入你将要修改的内容(如输入2000,将依次改变地址单元2001 2005的内容为:1111,2222,3333,4444,5555)。(2) 使用A 命令写一小段汇编程序,用G 命令连续运行该程序,用T、P 命令单步运行并观察程序单步执行情况; 1)在命令行提示符状态下输入: A 2000 ;表示程序从2000H(内存RAM起始地址)开始 屏幕

14、将显示: 2000: 输入如下形式的程序: 2000: MVRD R0,AAAA ;MVRD与R0之间有且只有一个空格 2002: MVRD R1,5555 2004: ADD R0,R1 2005: AND R0,R1 2006: RET ;程序的最后一个语句,必须为RET 指令 2007:(直接敲回车键,结束A 命令输入程序的操作过程)G 2000 程序运行结束后,可以看到程序的运行结果,屏幕显示各寄存器的值,其中R0 和R1 的值 均为5555H,说明程序运行正确。 l 用P 或T 命令,单步执行这段程序,观察指令执行果 在命令行提示符状态下输入: T 2000 寄存器R0 被赋值为AA

15、AAH T 寄存器R1 被赋值为5555H T 做加法运算,和放在R0,R0 的值变为FFFFH T 做与运算,结果放在R0,R0 的值变为5555H 用P 命令执行过程同上。 其中T 总是执行单条指令,但执行P 命令时,则把每一个CALL 语句连同被调用的子程序一次执行完成。T、P 命令每次执行后均显示所有通用寄存器及状态寄存器的内容,并反汇编出下一条将要执行的指令。(3) 要求根据所学知识编写:从键盘输入一个数字,并对其检测是否是0-9的数字,如果是则计算该值到10的累加和,如果不是则重新输入。(2040)MVRD R2,0030MVRD R3,0039(2044)IN 81SHR R0S

16、HR R0JRNC 2044IN 80MVRD R1,00FFAND R0,R1CMP R0,R2JRNC 2053DEC R0,R2MVRR R1,R0MVRD R2,0009MVRR R3,R0(2066)INC R3ADD R1,R3CMP R3,R2JRNZ 2066RET4. 体会、意见、建议这次实验是相对简单一点的,我感觉重点在于程序设计的步骤以及对指令jrnz的理解程度。但是感觉是实验之间的间隔实在太长,忘却的东西太多,希望教务能好好考虑安排。大连理工大学实验报告学院(系): 软件学院 专业: 软件工程 班级: 09 姓 名: 学号: 实验台: 实验时间: 2011. 实验室:

17、成绩: 指导教师签字: 实验三:脱机运算器实验1. 实验目的:(1)理解运算器芯片Am2901的功能和内部组成,运行中使用的控制信号及各自的控制作用;(2)理解4片Am2901构成16位运算器的具体方案,各数据位信号、各控制位信号的连接关系;(3)使用24位微型开关中的23位控制信号确定运算与处理功能。2. 实验平台硬件平台:清华大学TEC-XP实验箱的MACH部分3. 实验要求:(任务)(1)了解TEC-XP运算器基本组件2901的工作原理;4位的算逻运算部件ALU,输出为F,两路输入R和S,最低位进位信号Cn。实现R+S、S-R、R-S;三种算术运算,RS、RS、RS、RS、RS五种逻辑运

18、算。16个4位通用寄存器组成的寄存器组。双端口(A和B)控制读出、单端口(B)控制写入。通过A和B指定被读写的寄存器;4位的Q寄存器,实现硬件乘除法指令和对本身内容完成左右移位,能接收ALU输出。输出送到ALU 的S 输入端。(2)了解TEC-XP实验箱是如何使用4片2901构成16位运算器; (3)了解并掌握24位控制开关相应的序列所实现的控制功能;编码I8I6I5I3I2I0REGQY功能RS000 F FR+S A Q001 FS-R A B010FB AR-S 0 Q011FB FRS 0 B100F/2BQ/2 FRS 0 A101F/2B F/ RS D A1102FB 2Q FR

19、S D Q1112FB F/( RS) D 0A /B 口地址:源与目的操作数的寄存器编号;I8-I0: 3 组3 位分别选择操作数来源、操作功能、操作数处理结果和运算器输出内容;SSTCZVSSSH/SCICin/Shift000CZVS000Cin=0001CYF=0OVRF15001Cin=1010内部总线010Cin=C0110ZVS1001ZVS100逻辑移位101RAM0ZVS101循环移位110RQM15ZVS111Q0ZVSSCi、SSH 和SST:确定运算器最低位进位输入、移位信号入/出和状态标志位。(4)基于以上所学完成ppt最后要求的实验内容(控制信号表格)。 (当时复制

20、的)4. 体会、意见、建议没能够自己连接实验设备是个遗憾,Am2901芯片的工作原理理解的也不是很彻底。仅仅对表进行了实验,老师讲解后有所加深,但是我认为只有一次实验是绝对不够的。大连理工大学实验报告学院(系): 软件学院 专业: 软件工程 班级: 090 姓 名: 学号: 实验台: 实验时间: 2011. 实验室: 成绩: 指导教师签字: 实验四:存储器扩展实验1. 实验目的:(1)深入理解计算机内存储器的功能、组成知识;(2)深入地学懂静态存储器芯片的读写原理和用他们组成教学计算机存储器系统的方法(即字、位扩展技术),控制其运行的方式; 思考并对比静态和动态存储器芯片在特性和使用场合等方面

21、的同异之处。 静态存储器:依靠双稳态触发器的两个稳定状态保存信息,每个双稳态电路存储一位二进制代码,一块存储芯片上包含许多这样的双稳态电路,双稳态电路是有源器件,需要通电才能工作,且只要电源正常,就能长期稳定的保存信息,故称静态存储器。但如果断电,则会丢失信息,故有易失性。动态存储器:是采用超大容量的存储技术,但是要求由处理器控制刷新周期,故相比之下,更耗电,但是其价格较低。2. 实验平台硬件平台:清华大学TEC-XP实验箱的MACH部分部件:HN58c65p-25两片3. 实验要求:(任务)(1) 完成HN58c65p-25两片EEPROM的物理扩展;(2) 完成必要的跳线设置;(3) 验证RAM和EEPROM

温馨提示

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

最新文档

评论

0/150

提交评论