计算机组成原理课程设计--基于JUC1模型机Altera DE2-115实验板.doc_第1页
计算机组成原理课程设计--基于JUC1模型机Altera DE2-115实验板.doc_第2页
计算机组成原理课程设计--基于JUC1模型机Altera DE2-115实验板.doc_第3页
计算机组成原理课程设计--基于JUC1模型机Altera DE2-115实验板.doc_第4页
计算机组成原理课程设计--基于JUC1模型机Altera DE2-115实验板.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理课程设计报告基于JUC1模型机Altera DE2-115实验板班级:网络工程1102班姓名: 学号:指导老师:丁伟 日期:2013-6-242013-7-2第一天:熟悉微程序的设计和调试方法一、任务要求1、掌握微程序的设计方法2、熟悉利用调试软件运行、调试微程序的方法二、微程序利用调试软件将微程序写入控存,微程序如下。1.取指令微程序2.取源操作数微程序3.取目的操作数微程序4.执行阶段MOV指令微程序三、调机程序和结果分析1.调机程序调机程序 MOV #0001H R1指令编码 0761 0001 2.调试微程序利用调试软件“Step”按钮控制微指令单步执行3.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00100200300400B00F01600601800703102D02E,通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。分析指令的运行结果。理论上本条测试指令执行完后,R1的值应该是0001。通过调试软件的执行结果图可以看出,指令执行结果是正确的。第二天:取操作数微程序设计与调试一、设计目标1、在第一天的基础上,增加取操作数微程序2、利用事先准备好的调机程序验证取操作数微程序的正确性3、完成取源操作数和取目的操作数的微程序。根据流程图写出微操作二、微程序取指令取源操作数取目的操作数三、调机程序和结果分析1.调机程序调机程序 MOV (0003H) R1 指令编码 0721 0003 0009 0007写入主存结果如图:2.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00000100200300400B00F01201301401501600601800703102D02E,通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。分析指令的运行结果。理论上本条测试指令执行完后,R1的值应该是0007。通过调试软件的执行结果图可以看出,指令执行结果是正确的。第三天:双操作数指令的的微程序设计与调试一、设计目标1、在前一天的基础上,增加双操作数指令的的微程序。2、利用准备好的调机程序验证运算指令微程序的正确性,分析每条微指令、指令的运行结果及对标志位的影响。3、完成ADD、ADDC、SUB、SUBB、CMP、AND、OR、XOR、TEST 9条指令的微程序的设计。二、微程序三、调机程序和结果分析1)双操作数算术运算指令SUBB,源操作数直接寻址、目的操作数寄存器寻址1.调机程序调机程序 MOV #002A R3 SUBB 0002H R3指令编码 0763H 002A 1743 0002 0003写入主存结果如图:2.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00000100200300400B00F01401501600601800703502F030(省略MOV指令阶段),通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。分析指令的运行结果。理论上本条测试指令执行完后,R3的初始值应该是002A,执行完SUBB指令之后,得到结果0026即002A-0003-1=0026。通过调试软件的执行结果图可以看出,指令执行结果是正确的。2)双操作数逻辑运算指令XOR,源操作数立即寻址、目的操作数寄存器间接寻址1.调机程序调机程序 MOV #0010H R1 XOR #0001H (R1)指令编码 0761 0010 2769 0001 1010写入主存结果如图:2.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00000100200300400B00F01600601902502600703902F030(省略MOV指令阶段),通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。分析指令的运行结果。理论上本条测试指令执行完后,R1的值应该是0010,执行完XOR之后,得到结果1000即1010 XOR 0010=1000。通过调试软件的执行结果图可以看出,指令执行结果是正确的。3)比较指令CMP,源操作数间接寻址、目的操作数寄存器变址寻址1.调机程序调机程序 MOV #0001H R2 CMP (0002) DISP(R2)指令编码 0762 0001 1B32 0002 0008 0010 0011 1111写入主存结果如图:2.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00000100200300400B00F01301401501600601A01C01D01E027025026007036(省略MOV指令阶段),通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。 分析指令的运行结果。理论上本条测试指令执行完后,R2的值应该是0001,执行完CMP之后,得到结果1101即1111 CMP 0010 =1101。通过调试软件的执行结果图可以看出,指令执行结果是正确的。第四天:单操作数运算和移位指令的微程序设计与调试一、设计目标1、在前一天的基础上,增加单操作数运算和移位指令的微程序。2、利用准备好的调机程序验证单操作数运算和移位指令微程序的正确性,分析每条微指令、指令的运行结果及对标志位的影响。3、完成单操作数运算指令INC、DEC、NOT和7条移位指令微程序的设计。二、微程序移位指令单操作数运算指令三、调机程序和结果分析1)单操作数运算指令NOT1.调机程序调机程序 MOV #F00F R1 NOT R1指令编码 0761 F00F 0261写入主存结果如图:2.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00000100200300601800707302E(省略MOV指令阶段),通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。分析指令的运行结果。理论上本条测试指令执行完后,R1的值应该是F00F,执行完NOT指令之后,得到结果0FF0即NOT F00FH(1111 0000 0000 1111)=0FF0H(0000 1111 1111 0000)。通过调试软件的执行结果图可以看出,指令执行结果是正确的。2)移位指令SHR1.调机程序调机程序 MOV #0038 0020H SHR 0020H指令编码 077A 0038 0020 007A写入主存结果如图:2.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00000100200300601B01F02402502600706302F030(省略MOV指令阶段),通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。分析指令的运行结果。理论上MOV指令执行完后,主存地址0020H中存的内容是0038,而SHR指令执行完后,主存地址0020中得到结果001C即0000 0000 0011 1000 右移一位得到0000 0000 0001 1100。刷新主存后,通过调试软件的执行结果图可以看出,主存地址0020中的内容为001C,指令执行结果是正确的。第五天:子程序调用、堆栈和转移指令的微程序设计与调试一、 设计目标1. 利用准备好的调机程序验证子程序调用、堆栈和转移指令微程序的正确性,分析每条微指令、指令的运行结果及对标志位的影响。2. 完成CALL、RET、PUSH、POP和9条转移指令的微程序的设计。二、微程序转移指令PUSH指令POP指令CALL指令RET指令三、调机程序和结果分析1.调机程序调机程序 MOV #0531H R1 PUSH R1指令编码 0761 0531 0301写入主存结果如图:2.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是000001002003006018007078040041042(省略MOV指令阶段),通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。分析指令的运行结果。理论上本条测试指令执行完后,R1的值应该是0531, SP初始值为0030,执行完PUSH指令之后,压栈的表现为SP值减1即为002F。刷新主存后,通过调试软件的执行结果图可以看出,主存地址002F中的内容为0301,指令执行结果是正确的。而主存002E中的内容可能是上一轮程序执行的结果,由于没有重新载入文件的缘故,但并不影响整体结果。第六、七天:答辩及结果验收一、设计目标1.继续完成之前未完成的任务2.验收要求:1)把学号存入主存地址0080H;2)学号压栈到0080H;3)将0080H的内容逻辑左移一位,指令放入0060H;4)调用0060H的内容二、调机程序和结果分析1.调机程序调机程序 MOV #0038H 0080H PUSH 0080H SHL 0080H CALL 0060H指令编码 077A 0038 0080 031A 0080 005A 0080 035A 0060写入主存如图所示:2.结果分析分析微程序执行流程,根据前面指令微流程的设计,理论上该指令微程序的执行顺序应该是00000100200300601B01F024025026007078040041042(省略MOV指令阶段, PUSH指令阶段),00000100200300601B01F02402502600707A04804904A(CALL指令阶段),00000100200300601B01F02402502600706202F030(逻辑左移SHL指令阶段)通过调试软件的执行结果图可以看出,该指令微程序的微指令次序是正确的。分析指令的运行结果。理论上MOV指令执行完,刷新主存后,地址0080H的内容为0038。SP初始值为0030,执行完PUSH指令之后,压栈的表现为SP值减1即为002F,刷新主存后,通过调试软件的执行结果图可以看出,主存地址002F中的内容为0038。CALL指令执行后地址跳转到0060处执行SHL左移指令,0038左移一位后得到0070即0000 0000 0011 10000000 0000 0111 0000,指令执行结果是正确的。三、总结在为期一周的计算机组成原理课程设计过程中,不仅让我加深了对这门课程的理解,而且对基于JUC1模型机Altera DE2-115实验板在实验课的基础上有了进一步的认识和了解。第一天,主要是对编码软件、调机软件等环境的熟悉,学习和摸索怎样进行接下来几天的任务,根据指导书一步一步的做。在执行调机程序时遇到一个问题,如果根据实验指导书前面的微程序做,是错的,在后面有讲解更正,把00B中的微程序改为2008000F后结果才正确。第二天,开始自己学着写源操作数和目的操作数的微程序,根据课件上的流程图可以很轻松地把这些微操作写出来,根据uCoder写出微程序。调机程序根据第一天的情况,稍加修改,也比较容易写出来,运行结果是正确的。第三天,写9条双操作数指令的微程序,除了CMP和TEST指令,其他双操作数指令书上都讲得很清楚,因此也比较容易,但这两天指令书上几乎没有讲到,通过上网查阅资料以及和同学讨论得出结果。但写调机程序就比较困难了,刚开始不知道从何下手,怎样用MOV指令将数据送入寄存器或主存,双操作数如何调用主存或寄存器的内容。通过向同学请教,才得以写出调机程序,但要求用6种寻址方式,而间接寻址、寄存器间接寻址和变址寻址比较难,不断运行调试和请教同学,才运行出正确的结果。第四天,单操作数指令INC,NOT,DEC都可根据课件或书本写出,移位指令则是通过百度找出结果。经过第三天的学习和请教,在写调机程序和调试方面有了大大的提高,因此这一天也比较容易的完成任务。第五天,CALL、RET、PUSH、POP的内容课本讲

温馨提示

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

评论

0/150

提交评论