改变标志位,并不改变R0中的数值。 JZ 45 ENDP
7.设计结果说明
3D 45 3445 若零标志位置1,跳转到3CH地址。 3C 程序结束。 FFF7F7 FFFE93 CBFFFF C6FFFF CBFFFF CBFFFF +1 +1 EM:80 W:80 +1 EM:80 A:05 写入 EM:80 写入 +1 EM:34 +1 写入 EM:45 +1 写入 EM:3C 在这次课程设计的过程中,只是把系统已有的指令稍微的改变了一下,又分析了一下自己的需求,重新设计出一套完成乘除法的微指令系统。但是,因为在设计的过程中,忽视了COP2000的一些局限性,导致产生了一些问题。但是我和同学讨论后就找出这些错误,并改正之。下面,我对这些问题作具体说明:
(1)起初想设计一条让两个寄存器直接运算的指令,自我感觉这样的指令应该能实现。但是当我在写指令对应的微程序的微指令时,发现这条指令在这个模型机里根本不可能实现。因为COP2000中用指令的机器码的最后两位来指定使用寄存器组的相应寄存器,所以,在指令中不可能同时出现两个操作数都是寄存器R?。最后只能借助与A累加寄存器,让他作为中间桥梁来实现。
(2)在无符号整数除法设计中,最后的余数要是为负需要再加上原来的除数来修改余数,进而得到真正的余数。在程序开始的时候先用“PUSH A”指令把除数压入堆栈寄存器ST中,在程序计算完商的时候,用“POP A”指令将除数弹出到A中,在进行除数处理就解决了余数超过除数的问题。
(3)刚开始没想着设计出8位的乘法,后来突然想到在汇编中对带进位的逻辑移位搞得不是太懂,所以就想着在微程序设计这块加深对带进位的移位操作的理解,就做出了8位 的乘法操作。为此又添加了一些带进位操作的指令。比如说SL R?指令是用来将最高位的移出放入到进位标志位中;SLL R?指令就是包含进位的左移操作;ADC R?,#II指令是带进位的加法操作运算。
在乘除法的汇编程序设计过程中,发现可以多加一些指令来代替一些复杂的操作,比如说:乘法中,刚开始的时候添加了一个初始值为0的计数器,每次加法操作后加1直至计数器为4结束,后来考虑到当乘数为零时,即是程序的结束标志,于是设计了跳转指令及程序,由此想到乘数开始可能是零,所以又添加了在开始判断乘数是否为零的操作。于是设计了一个“TEST R?,#II”指令,其实本不必添加的,用来测试乘数。在除法程序,除数需要先左移4位,然后要依次右移1位。我做了PUSH A和POP A来保护除数和恢复除数。这样的话
就可以省去占用寄存器,操作起来也比较方便。
另外,有时候为了少用指令也是煞费苦心。比如说在除法汇编程序设计时,刚开始把计数器设为0,想让他自增,最后与4比较,发现若果这样的话就必须添加一条指令CMP(只改变标志位)。可是,如果我把计数器的值设为5,让他每次都减1,看看结果是不是0,就省去了一条指令。
8、本次课程设计的总结体会(不少于200字)
对于这次的课程设计,虽然设计的要求和设计的目的都独立完成了,但是觉得自己做的还是不够严谨。虽然通过这次计算机组成原理的课程设计,我对于模型及内部元件的工作原理以及微命令,微程序,指令间的层次递进关系有了更进一步的认识。许多在课堂上没有听懂或者是有模糊不清的部分通过课程设计的真正实践已经得到了弥补。但是最基本的cop2000试验箱我没有完完全全的摸透,虽然仿真和上机调试也做了很多次,但是具体每个模块的作用是什么并不全都明晰,这是自己的不足之处。
一开始的时候,对于机器指令及微指令的设计放大不是很了解,对于计算机各部分的组成以及工作原理也知之甚少。经仔细研读课本和资料的相关部分后终于掌握了相关方法。 当然,在课程设计进行的过程中也遇到了各种各样的问题 ,不过经过学习这些问题都得到了很好的解决,在这期间,自身能力和相关知识都可能得到提高,这大大锻炼了我的自学能力。
通过这次课程设计,巩固了有关指令系统设计以及微程序设计的相关知识,更加深刻的认识到了不同的模型机硬件对于设计的限制值得具体是什么,也就是为什么总要说指令系统的设计是相对某一模型机而言,也让我对于计算机组成原理这门课的学习更有信心。同时也使我了解了自身的不足,知识掌握的漏洞所在。为我之后的学习提供了可靠的方向。
我感觉此次课程设计还有点小的遗憾,就是本次只是设计一些微程序,没有涉及到跳转微指令地址的设计。刚开始以为还要设计硬件电路,后来读了COP2000模型机的特点之后,顿时感觉好像没有那么难。另外,如果能给同学们安排一个固定的场所就可以督促学生,有可能会做得更好。希望学校多买一些设备,不能让我们到实验室之后发现有好多机器都是不能用的,这其实对学生来说有点打击积极性了。还有一点不得不说一下,就是关于那个执行过程的问题,为什么非要填表,执行过程那么长,要填的东西本来截个图就可以了,填个表格实在是占用了我们极大的时间,希望老师可以考虑下我的建议。