文档介绍:
评语:
课中检查完成的题号及题数:
课后完成的题号与题数:
成绩:
指导教师:
实验报告
实验名称:
CPU与简单模型机设计实验
日期:
2010-12-26
班级:
JS000803
学号:
2008300085
姓名:
张浩
一、实验目的:
1.
掌握一个简单CPU的组成原理。
2.
在掌握简单单元电路的基础上,进一步将其构造成一台基本模型计算机。
3.
为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。
二、实验内容:
1.
修改现有的指令系统,将加法指令的功能修改为R0的内容和某个存储单元的内容相加。增加存数,取数和减法三条机器指令,指令助记符分别为STA,LAD和SUB,指令操作码分别为60,70和80。
2
利用修改后的指令系统编写一段程序,完成16位二进制数的加减法运算。
三、项目要求及分析:
(1)
将加法指令的功能修改为R0的内容和某个存储单元的内容相加。原来的加法指令中的两个数相等且均来自R0寄存器,因此只需要在加法指令中增加取数操作,并将当前的操作数存入运算单元即可。具体的操作步骤如下:
1)将R0中的数据送ALU中的A;
2)给出另一个数在内存中的地址;
3)从内存中取出相应的数据并送ALU中的B;
4)进行加法运算并将结果送R0。
存数指令的具体操作过程如下:
1)从IN读入数据要存储的地址;
2)将地址送至AR;
3)从IN读入要存储的数据;
4)将数据送入内存中的相应存储单元。
取数操作的具体操作过程如下:
1)从IN读入数据的存储地址;
2)将存储地址送至AR;
3)将取出的数据送至R0
减法指令的具体操作过程如下:
1)将被减数送至ALU的A;
2)将减数送至ALU的B;
3)ALU进行减法操作,结果送R0;
(2)
该内容只要利用以后的指令系统,编写相应的程序。可以先将两个十六位的二进制数的高八位和低八位分别存入不同的地址,然后先取出两个数低八位进行相加,送至OUT单元显示,进位进行存储;再进行两个数低八位相加,结果在数据总线出显示。
四、具体实现
微程序流程图如下:
问题一其函数的代码生成二进制代码表
地址
十六进制
高五位
S3-S0
A字段
B字段
C字段
MA5-MA0
00
000001
00000
0000
000
000
000
000001
01
006D42
00000
0000
110
110
101
000010
02
107073
00010
0000
111
000
001
000011
03
053201
00000
1010
011
001
000
000001
11
006412
00000
0000
110
010
000
010010
12
183013
00011
0000
011
000
000
010011
13
200401
00100
0000
000
010
000
000001
15
006416
00000
0000
110
010
000
010110
16
103001
00010
00
内容来自淘豆网www.taodocs.com转载请标明出处.