ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:427.33KB ,
资源ID:2796238      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2796238.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(湖南大学计算机组成实验报告简单的8086汇编程序与指令分析3DOC.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

湖南大学计算机组成实验报告简单的8086汇编程序与指令分析3DOC.docx

1、湖南大学计算机组成实验报告简单的8086汇编程序与指令分析3DOCHUNAN UNIVERSITY计算机组成原理实验三题 目 简单的8086汇编程序与指令分析 学生姓名 学生学号 专业班级 指导老师 袁小坊 完 成 日 期 2013-06-24 非常简单CPU与相对简单的CPU模拟器实验实验目的: 本次实验主要是在非常简单和相对简答的CPU模拟器上观察程序的运行,更加形象直观的了解CPU中程序运行的各个步骤以及各个寄存器和逻辑单元在各个步骤时发挥的作用。加深对CPU的分析和理解。实验方法: 在Java Runtime Eviroment软件平台下通过运行CPU模拟器,输入指令程序,然后运行,直

2、接观察CPU的寄存器部分和状态图部分的运行,记录并进行分析,理解。实验准备:在启动模拟器之前必须先行安装Java Runtime Eviroment软件,准备好VSCPU.zip、RSCPU.zip两个文件,并建目录“c:实验”,将VSCPU.zip、RSCPU.zip放置其中。实验步骤与CPU的截图分析:一、 非常简单的模拟器:在做好前面的准备工作后,即可以开始非常简答的模拟器模拟:1、先将目录c:实验下的VSCPU.zip解压至D:vscpu2、打开D:vscpuVSCPU中的index.html页面以运行“非常简单CPU模拟器”。如下图所示的页面:3、观看该模拟器使用方法的动画:(如果了

3、解操作步骤此步也可以省略)D:vscpuVSCPUVery Simple-FLASHVerSimpleCPUSCREEN.html。、输入教材P168页程序,在模拟器中观察程序的运行。如下图所示:分析:在输入程序的时候,应注意像,这些数据前面要加上,并且要有空格,然后才能运行程序。上面的六行指令是书上的指令,下面就是要运行一下,动态观察的运行过程。运行模拟器的步骤如下:1.首先在输完代码之后要先进行编译,点击ssemble按钮你,编译成功,后分别点击1、View Register Section 按钮,即是CPU寄存器部分的运行图2、View Memory按钮,即是内存部分的运行图3、View

4、 Control Unit按钮,即是控制单元的运行图,分别从这三个图观察CPU的运行过程。截图与分析如下所示:(由于每条指令执行过程中的过程比较详细而且复杂,故此处不肯能把全部过程加以分析,只详细分析了第一条指令ADD 4运行的具体过程,其他运行过程未写出或者只写了一部分)第一个状态FETCH1初始态:分析:有效信号PCBUS,和ARLOAD表示AR寄存器开始工作,PCBUS通路,此步执行操作把PC中的值复制到AC,即是把0赋给AC,如下所示:分析:冒号前面的数字表示地址,即是内存单元的地址,上图中一行有四个内存单元。每个内存单元中又存有一组数据(既可以表示后面的地址,又可以表示数据)0000

5、 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

6、0000:表示JMP 0,跳转指令,即是程序运行到此时自动跳转到初始地址0H,然后指令又从0地址的ADD开始运行。0010 0111表示27H,表示地址4内存单元中存储的数据为270011 1001表示39H,表示地址5内存单元中存储的数据是39控制单元:分析:此时状态为FETCH1,故FETCH1为红的(打印可能看不出来,上面的红色信号打印估计也看不出来,这里先说明)第二个状态FETCH2的运行过程如下:分析;FETCH2时,有效信号为READ,MEMBUS,DRLOAD,PCINC(图中红色信号),执行操作由上图可看出在AR被赋值0之后,进入fetch2操作,read信号有效,M从AR(地

7、址寄存器)中读取地址0,然后把地址0所代表内存单元中的数据0000 0100(04H)输入到总线上,最后传到数据寄存器DR中,同时完成PC自加1操作,记下下一条将被执行指令的地址(1地址代表的内存单元中的数据为0100 0101,即是下一条指令)即是DR04H,PC1。(DRM,PCPC+1)。结果如下图所示:内存运行图与上步一样不在截图控制单元运行图如下:FETCH2指令为红色,执行FETCH2操作第三个状态FETCH3的运行状态如下:控制单元:分析:FETCH2自加1,进入FETCH3状态寄存器部分的运行结果与分析如下:分析:FETCH3状态时,由上图可知有效信号为DRBUS,ARLOAD

8、,IRLOAD。所执行操作分别是:IRDR7.6,AR5.0,即是DR寄存器中的数据高两位存入IR(指令寄存器)寄存器中,用来选择运算类型,低六位装载到AR寄存器中,用来向存储器提供地址,在这步操作中,DR中的数据0000 0100从DR出来到总线上,然后再分别装载到IR和AR中,其中00存到IR寄存器中选取运算类型(00代表ADD,下面会有显示),00 0100保存到AR中作为访问存储器的地址,运行结果如下图:分析:从IR处数据分开分析:AR寄存器的值变为00 0100第四个状态ADD1的运行情况如下:控制单元:分析:上图中FETCH3为红色,计数器counter开始计数,IR装载到计数器中

9、而后用于选择运算类型。寄存器部分分析如下:分析:ADD1状态的有效信号为READ,MEMBUS,DRLOAD,所执行的操作为DRM,即是将M中的数据存到DR寄存器中。此状态的具体过程是:上一步中AR存入数据00 0100,即是访存的地址(04H),访问地址为4的内存单元,然后4内存单元中的数据传到总线上再保存到DR中用作ADD操作的其中一个操作数,即是:将4内存单元中的数据27H保存到数据寄存器DR中,结果如下图,DR中的数据由0000 0100变为0010 0111:第五个ADD2的运行情况如下:控制单元中ADD2变为红色,有效,此处不再截图寄存器部分的运行情况如下:由下图可知,在ADD2状

10、态中的有效信号为DRBUS,ACLOAD,所执行操作就是把DR寄存器中的数据与AC累加器中的数据相加然后结果保存在AC累加器中,即是:ACAC+DR。具体过程是数据0010 0111(27H)从DR中出来作为加法其中的一个操作数,然后AC中的数据0从AC中出来,作为加法的另一个操作数,二者在算术运算单元ALU中进行加法运算,然后相加的结果0010 0111(27H)保存在AC累加器中,AC累加器的值变为0010 0111。AC0+27H=27H二者在ALU相遇并相加:ALU中的具体功能:分析:由上图可知,从DR和AC中出来的数据在ALU中运算。ALU、是算术或逻辑运算单元,故此指令中二者选择并

11、行加法器进行相加云端结果保存在AC中。分析:由上图可知AC的值变为0010 0111(27H),完成了ADD 4指令。非常简单CPU模拟器运行实验心得与总结:以上就是ADD 4指令的全部运行过程,在程序运行和分析中逐渐对CPU的运行有了了解,不像书上给出的那样有些抽象,这种模拟器的方法则更加形象具体,对理解CPU的运行与设计有不小的帮助。虽然在开始分析时有部分不懂,但是在看了几遍运行情况之后有了些理解,故都写在了上述的分析中,可能这次实验报告有些多(大部分是截图)但这些分析我认为有必要记录下来。在完成ADD 4这条指令后,程序又会跳转到FETCH1,此时PC值为1,运行下一条指令,以此类推,以

12、后的每条指令运行情况都与此类似, 另外,关于其他指令的运行情况也了解了,与上述的情况大致相同,只是所取数据和操作类型不同,在此不再赘述。二、 相对简单的CPU模拟器:相对简单的CPU模拟器的实验与非常简答的cpu模拟器实验非常类似,实验步骤和上面的一样,在此不再赘述。相对简单CPU模拟器如下图所示:输入代码并编译运行,代码如下:运行结果寄存器部分:分析:比非常简单的CPU更加复杂。内存部分:分析:内存单元还不只如此,比非常简单的CPU内存单元更加多。控制单元部分:分析:控制单元也相对比较复杂,IR变成4位,指令更多。相对简单的CPU模拟器总结分析:相对简单的CPU比非常简单CPU复杂的多,运行过程比较多,与非常简答的CPU相比,多了LDAC、JMPZ等一系列指令,以及相应的实现这些指令的寄存器,设计更加复杂。不过相对简单的CPU的功能更加丰富。实验心得:进一步深刻理解CPU!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1