CPU与简单模型机设计实验_第1页
CPU与简单模型机设计实验_第2页
CPU与简单模型机设计实验_第3页
CPU与简单模型机设计实验_第4页
CPU与简单模型机设计实验_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、评语:课中检查完成的题号及题数: 课后完成的题号与题数:成绩:自评成绩:85实验报告实验名称:cpu 与简单模型机设计实验日期:2015.11.17班级:10011302学号:201302513姓名:周小多一、实验目的:1.掌握一个简单cpu 的组成原理。2.在掌握部件单元电路的基础上,进一步将其构造一台基本模型计算机。3.为其定义五条机器指令,编写相应的微程序,并上机调试掌握整机概念。二、实验内容:1.要实现一个简单的cpu,并且在此cpu 的基础上,继续构建一个简单的模型计算机。cpu 由运算器(alu)、微程序控制器(mc)、通用寄存器(r0),指令寄存器(ir)、程序计数器(pc)和地

2、址寄存器(ar)组成,如图2-1-1 所示。这个cpu 在写入相应的微指令后,就具备了执行机器指令的功能,但是机器指令一般存放在主存当中,cpu 必须和主存挂接后,才有实际的意义,所以还需要在该cpu 的基础上增加一个主存和基本的输入输出部件,以构成一个简单的模型计算机。2.本模型机和前面微程序控制器实验相比,新增加一条跳转指令jmp,共有五条指令:in(输入)、add(二进制加法)、out(输出)、jmp(无条件转移),hlt(停机),其指令格式如下(高位为操作码): 助记符机器指令码说明in0010 0000inr0add 0000 0000r0 + r0r0out 0011 0000r0

3、outjmp addr 1100 0000 addr pchlt0101 0000停机3.设计一段机器程序,要求从in 单元读入一个数据,存于r0,将r0 和自身相加,结果存于r0,再将r0 的值送out 单元显示。根据要求可以得到如下程序,地址和内容均为二进制数。 地址 内容 助记符 说明0000000000100000; start: in r0从 in 单元读入数据送 r00000000100000000; add r0,r0r0 和自身相加,结果送 r00000001000110000; out r0r0 的值送 out 单元显示0000001111100000; jmp start跳

4、转至 00h 地址00000100000000000000010101010000; hlt停机三、项目要求及分析: 1. 试修改现有的指令系统,将加法指令的功能修改为r0的内容和某个存储单元的内容相加;增加存数、取数和减法三条机器指令,指令助记符分别为 sta、lad 和sub,指令操作码分别为十六进制的60、70和80。r0和某个存储器相加,r0是可以直接读进来的,r0和另一个存储单元内容相加,如果两个值都是读入的话,就要将一个放在r0中,可以直接读入,另一个放存在储单元。可以先将值读入到r0 中,在将r0保存到其他的存储单元中,进行加法时从存储单元中取出放在临时寄存器中,这样是两个寄存器

5、相加减就可以。 具体步骤:1)将r0中的数据送alu中的a;2)给出另一个数在内存中的地址;3)从内存中取出相应的数据并送alu中的b;4)进行加法运算并将结果送r0。对于增加存数、取数和减法三条机器指令, 存数指令sta具体操作过程如下: 1)从in读入数据要存储的地址;2)将地址送至ar;3)从in读入要存储的数据;4)将数据送入内存中的相应存储单元。对于取数指令lad具体操作过程如下:1)从in读入数据的存储地址;2)将存储地址送至ar;3)将取出的数据送至r0减法指令的具体操作过程如下:1)将被减数送至alu的;2)将减数送至alu的;3)alu进行减法操作,结果送r0; 2. 利用修

6、改后的指令系统编写一段程序,完成十六位二进制数的加减法运算。 答: 十六进制比八进制多了一半,该内容利用的指令系统,编写相应的程序。可以先将两个十六位的二进制数的高八位和低八位分别存入不同的地址,然后先取出两个数低八位进行相加,送至out单元显示,进位进行存储;再进行两个数低八位相加,结果在数据总线出显示。四、具体实现: 微程序设计流程图: 微代码$m 00 000001 ; nop $m 01 006d42 ; pc-ar,pc加1 $m 02 107073 ; mem-ir, p $m 11 006412 ; pc-ar,pc+ $m 12 183013 ; mem-ar $m 13 20

7、0401 ; mem-b $m 15 006416 ; alu-r0 加法 $m 16 103001 ; pc-ar,pc+ $m 17 183018 ; mem-ar $m 18 006419 ; mem-b $m 19 102005 ; alu-r0 减法 $m 1d 105141 ; mem-ar $m 2c 18302d ; r0-mem sta $m 2d 00642e ; m-ar $m 2e 10202f ; m-r0 lad $m 2f 05b201 ; m-pc jmp pc+ $m 30 001417 ; r0-a 加法 $m 32 183001 ; r0-a 减法 $m

8、33 280401 ; pc-ar ,pc+ 置ro ar-r0 lad $m 35 000035 ; sta:pc-ar,pc+,mem-ar,r0-mem(ar) $m 36 183011 ; in-r0 输入in $m 37 183015 ; r0-out 输出out $m 38 00142c ; pc $m 3c 006d5d ; pc-ar jmp利用修改后的指令系统编写一段程序,完成十六位二进制数的加减法运算。 以下的一段程序用于实现两个16位二进制数的加法,其思想为高位和低位分别对应相加,将低位的进位给高位,减法同理。结果的低八位在out单元显示,高八位数据在数据总线显示,最高位

9、的进位忽略。$p0060sta存加数的低八位$p0160sta 存被加数的低八位$p0260sta存加数的高八位$p0360sta存被加数的高八位$p0470lda 取出加数的低八位存入r0中$p0500add两个数低八位相加$p0630out两个数低八位相加的结果在out单$p0770lda 取出加数的高八位存入r0中$p0800add 两个数的高八位相加$p0950hlt停机五、调试运行结果: 加法: 输入的两个数据分别为:01010010,11111111(52ff)00110010,00000001(3201)输出的结果为: 00000001,00000000(8500)减法:输入的两个数据分别为: 01010110,11111111(56ff)00110010,00000001(3201)输出的结果为: 001111111,11111110(3ffe) 六、所遇问题及解决方法:1. 在上实验课时,因为自己的实验器材的问题,一直都不能完成一个数与自身相加,之后也尝试了很多次才调整过来,感觉连线的过程千万不能将线接错,否则结果很难出来,做实验一定要很细心。 七、实验总结:1.经过这次实验,我体会到自己所学的东西太少了,很多都不知道。虽然这次设计的只是一个小程序,但

温馨提示

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

评论

0/150

提交评论