机组实验报告三—非常简单CPU与相对简单的CPU模拟器实验.docVIP

机组实验报告三—非常简单CPU与相对简单的CPU模拟器实验.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
机组实验报告三—非常简单CPU与相对简单的CPU模拟器实验

非常简单CPU与相对简单的CPU模拟器实验 实验目的: 本次实验主要是在非常简单和相对简答的CPU模拟器上观察程序的运行,更加形象直观的了解CPU中程序运行的各个步骤以及各个寄存器和逻辑单元在各个步骤时发挥的作用。加深对CPU的分析和理解。 实验方法: 在Java Runtime Eviroment软件平台下通过运行CPU模拟器,输入指令程序,然后运行,直接观察CPU的寄存器部分和状态图部分的运行,记录并进行分析,理解。 实验准备: 在启动模拟器之前必须先行安装Java Runtime Eviroment软件,准备好VSCPU.zip、RSCPU.zip两个文件,并建目录“c:\实验”,将VSCPU.zip、RSCPU.zip 放置其中。 实验步骤与CPU的截图分析: 非常简单的CPU模拟器: 在做好前面的准备工作后,即可以开始非常简答的CPU模拟器模拟: 1、先将目录c:\实验下的VSCPU.zip解压至D:\vscpu 2、打开D:\vscpu\VSCPU中的index.html页面以运行“非常简单CPU模拟器”。 如下图所示的页面: 3、观看该模拟器使用方法的动画:(如果了解操作步骤此步也可以省略) D:\vscpu\VSCPU\Very Simple-FLASH\VerSimpleCPUSCREEN.html。 4、输入教材P168页程序,在模拟器中观察程序的运行。 如下图所示: 分析:在输入程序的时候,应注意像27H,39H这些数据前面要加上DB,并且要有空格,然后才能运行程序。上面的六行指令是书上的指令,下面就是要运行一下,动态观察CPU的运行过程。 运行CPU模拟器的步骤如下: 首先在输完代码之后要先进行编译,点击Assemble按钮你,编译成功,后分别点击1、View Register Section 按钮,即是CPU寄存器部分的运行图 2、View Memory按钮,即是内存部分的运行图 3、View Control Unit按钮,即是控制单元的运行图,分别从这三个图观察CPU的运行过程。截图与分析如下所示:(由于每条指令执行过程中的过程比较详细而且复杂,故此处不肯能把全部过程加以分析,只详细分析了第一条指令ADD 4运行的具体过程,其他运行过程未写出或者只写了一部分) 第一个状态FETCH1初始态: 分析:有效信号PCBUS,和ARLOAD表示AR寄存器开始工作,PCBUS通路,此步执行操作把PC中的值复制到AC,即是把0赋给AC,如下所示: 分析: 冒号前面的数字表示地址,即是内存单元的地址,上图中一行有四个内存单元。 每个内存单元中又存有一组数据(既可以表示后面的地址,又可以表示数据) 0000 0100:这一串数的意思是表示:开始执行ADD 4这条指令,其中前两位表示指令类型,表示进行什么操作,其中00代表ADD,01代表AND,10代表JMP,11代表INC;后六位表示地址,表示从该地址中取数据进行相应的操作。 0000 0100:就代表指令ADD 4,表示把地址4代表的内存单元里的数据(即是27H)与AC寄存器里的数据相加并保存在AC累加器中。 0100 0101:代表指令AND 5,表示把地址5代表的内存单元里的数据(即是39H)与AC累加器中的数据按位相与,结果保存在AC累加器中。 1100 0000:表示指令INC,自加一指令,表示将AC中的数据自加一并保存在AC中。 1000 0000:表示JMP 0,跳转指令,即是程序运行到此时自动跳转到初始地址0H,然后指令又从0地址的ADD开始运行。 0010 0111表示27H,表示地址4内存单元中存储的数据为27 0011 1001表示39H,表示地址5内存单元中存储的数据是39 控制单元: 分析:此时状态为FETCH1,故FETCH1为红的(打印可能看不出来,上面的红色信号打印估计也看不出来,这里先说明) 第二个状态FETCH2的运行过程如下: 分析;FETCH2时,有效信号为READ,MEMBUS,DRLOAD,PCINC(图中红色信号),执行操作由上图可看出在AR被赋值0之后,进入fetch2操作,read信号有效,M从AR(地址寄存器)中读取地址0,然后把地址0所代表内存单元中的数据0000 0100(04H)输入到总线上,最后传到数据寄存器DR中,同时完成PC自加1操作,记下下一条将被执行指令的地址(1地址代表的内存单元中的数据为0100 0101,即是下一条指令) 即是DR—04H,PC—1。(DR—M,PC—PC+1)。 结果如下图所示: 内存运行图与上步一样不在截图 控制单元运行图如下: FETCH2指令为红色,执行FETCH2操作 第三个状态FETCH3的运行状态如下: 控制单元: 分析:FETCH2自加1,进入FETC

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档