计算机组成原理实验完整版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河南农业大学
计算机组成原理实验报告
题目简单机模型实验
学院信息与管理科学学院
专业班级计算机科学与技术2010级1班
学生姓名张子坡(1010101029)
指导教师郭玉峰
撰写日期:二○一二年六月五日
一、实验目的:
1.在掌握各部件的功能基础上,组成一个简单的计算机系统模型机;
2.了解微程序控制器是如何控制模型机运行的,掌握整机动态工作过程;
3定义五条机器指令,编写相应微程序并具体上机调试。
二、实验要求:
1.复习计算机组成的基本原理;
2.预习本实验的相关知识和内容
三、实验设备:
EL-JY-II型计算机组成原理试验系统一套,排线若干。
四、模型机结构及工作原理:
模型机结构框图见实验书56页图6-1.
输出设备由底板上上的四个LED数码管及其译码、驱动电路构成,当D-G和W/R均为低电平时将数据结构的数据送入数据管显示注:本系统的数据总线为16位,指令、地址和程序计数器均为8位。当数据总线上的数据打入指令寄存器、地址寄存器和程序寄存器时,只有低8位有效。
在本实验我们学习读、写机器指令和运行机器指令的完整过程。在机器指令的执行过程中,CPU从内存中取出一条机器指令到执行结束为一个指令周期,指令由微指令组成的序列来完成,一条机器指令对应一段微程序。另外,读、写机器指令分别由相应的微程序段来完成。
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,必须设计三个控制操作微程序。
存储器读操作(MRD):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“00”时,按“单步”键,可对RAM连续读操作。
存储器写操作(MWE):拨动清零开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“10”时,按“单步”键,可对RAM连续写操作。
启动程序(RUN):拨动开关CLR对地址、指令寄存器清零后,指令译码器输入CA1、CA2为“11”时,按“单步”键,即可转入第01号“取指”微指令,启动程序运行。
注:CA1、CA2由控制总线的E4、E5给出。键盘操作方式有监控程序直接对E4、E5赋值,无需接线。开关方式时可将E4、E5接至控制开关CA1、CA2,由开关控制。
五、实验内容、分析及参考代码:
生成的下一条微地址
UA5 UA0
MS5 MS0
微地址
41221404
2231511
621
731
4P CA P I P I SA P CA P I P I SA P I SA P I SA SA ⋅+⋅+⋅=⋅+⋅+⋅=⋅=⋅==
进行P1测试时,P1为0,其他都为1。
进行P4测试时,P4为0,其他都为1。
当SA4-SA0为0时,对应的UA4-UA0被置1,否则UA 保持MS 原值不变。
1. 根据上面的逻辑表达式,分析56页图6-2的P1测试和P4测试
两条微指令的微地址转移方向。
P1测试时SA4=1、SA3=1、SA2=1、SA1=0、SA0=1,表明SA1对应位置1生成的下一条微地址001010,进入12号单元,12号单元的F3字段为101不是任何测试,所以就进入07号单元,把01H 送入BX ,07号单元的F3字段为111无操作,回到01号单元的取指阶段。同理,可得ADD 指令的地址转移方向。
P4测试时,它以CA1、CA2作为测试条件,出现读写机器指
令、直接运行机器指令三路分支,占用三个固定的地址元。 P4测试是对内存读、写或者直接运行程序,此时可得到SA4=1,
SA3=SA2=1,当CA1、CA2为“00”时SA1=SA0=1,全1则原样输出既010000,进入20号单元。20单元的F3字段为101,LPC 不是任何测试, 所以,下址字段为010010,既进入22号单元。22单元的F3字段为111无操作,下址字段为010111,进入27号单元,而27单元的F3字段为111,无操作下址字段为010000,所以又回到20号单元,开始循环。同理,当CA1、CA2为“10”时可得到SA1=0,SA0=1,则把SA0对应位置1,既010001进入微地址21,按照
“010001”、“010100”、“011000”方式循环。当CA1、CA2为“11”时可得到SA1=SA0=0对应置1,生成下一条微地址为010011
既23号单元,23单元的F3字段为111无操作生成的下址字段为000001,进入到取指阶段01号单元开始程序运行。
2.分析实验六中的五条机器指令的执行过程
引用以下代码及机器指令再分析
0000 0000 0000 0000 IN AX,KIN 数据输入电路->AX0000 0001 0010 0001 MOV BX,01H 0001H->BX
0000 0010 0000 0001
0000 0011 0001 0000 ADD AX,BX AX+BX->AX
0000 0100 0001 0000 OUTDISP AX AX->输出显示电路0000 0101 0100 0000 JMP 00H 00H->PC
0000 0110 0000 0000
表6-1机器指令表:
关于上面五条机器指令的执行过程。首先,进入取指阶段,PC 中机器指令的地址送AR,然后PC值加1,RAM中的数上数据总线,指令寄存器的门打开接收数据,操作码进行P1测试经译码后,对于IN AX,KIN取机器指令的高四位对SA4、SA3、SA2、SA1、SA0,判断
后得到下址字段,既进入10号单元完成把输入的数据给AX。然后,又回到“取指”阶段,“译码”进行P1测试取MOV BX,01H的高四位对SA4、SA3、SA2、SA1、SA0,判断后进入12号单元,执行当前PC中的值送AR,PC值加1,进入07号单元执行RAM中的数01H 上数据总线,寄存器BX接收数据。回到公用微指令“取指”,“译码”阶段,进行P1测试再取ADD AX,BX取出它的高四位对SA4、SA3、SA2、SA1、SA0判断进入11号单元寄存器AX的内容送数据总线LT1接收数据,进入03单元BX的内容上数据总线LT2接收进入06号单元LT1与LT2数据之和送给AX,最后回到取指阶段继续执行译码后取OUT DISP,AX ,P1测试后进入13号单元把寄存器AX的内容输出显示,然后回到取指阶段。最后执行JMP指令经P1测试进入14号单元,当前PC值送AR,然后加1,进入15号单元RAM中的数据上数据总线,把跳转地址送给PC,最后转向取指阶段。
3.修改MOV指令,使送入BX中的值为02H。
把02H送给BX,达到修改01H,MOV BX,01H为双字长第二个字为操作数01H。把操作数改成0000 0010即可。
4.设计一条机器指令,IN BX , KIN 数据输入电路->BX,微程序入口地址为16。将原程序中的MOV指令替换,再运行,写出执行过程和结果。
机器指令助记符说明
0110 0001 IN BX,KIN 数据输入电路->BX
机器指令执行,在取指阶段01号单元PC送AR,PC值加1,进入02单元RAM数据上数据总线指令寄存器门打开接收数据,P1
测试译码后,进入16号单元把数据送入BX,回到取指阶段译码。回到01号单元的取指阶段。
5.设计一条机器指令,SUB AX,BX AX-BX->AX ,微程序入口地址为17。将原程序中的ADD指令替换,再运行,写出执行过程和结果。