VC实验计算机的汇编器设计与实现
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
为教学改革做准备,用FPGA设计了一个实验计算机。为了更加方便的验证设计的正确性,需要设计一个汇编器,把汇编语言源程序转化为目标代码。本设计采用词法分析生成工具LEX和语法分析生成工具YACC,使得生成的代码质量更高,更可靠,更容易改动词法和语法规则。本文设计了指令模板的方法,解决了汇编器的灵活性和通用性问题。汇编器的核心部分在WIN32控制台下调试,界面利用MFC设计。
【www.think58.com计算机毕业论文网】
think58.com
[资料来源:THINK58.com]
[资料来源:http://think58.com] 本文来自think58 [资料来源:http://think58.com]关键字:汇编器,词法分析,语法分析,实验计算机,教学改革.
《计算机组成原理》是一门重要的计算机基础课,它讲解了计算机从部件到整体的组织结构和工作原理,由于微电子和计算机学科的迅速发展,对该课程教学提出了更高的要求。教学方式有理论讲解和实验两种,实验是教学中的重要环节,目前的实验教学偏重于验证计算机的工作原理,效果并不是很理想,以后的实验的发展趋势是将更多的偏向于设计。
为教学改革作论证,用FPGA实现了一个实验计算机,其硬件控制是由微程序实现。计算机的结构中,位于最底层的是逻辑线路,也叫硬件,是由机器语言直接操纵的。如果计算机的控制器是由微程序的方式构造的,这一层便是微程序级,其功能是将每条机器指令转化为一系列由微命令对应的微程序,按微程序的先后顺序发出控制命令,就可导致数据在硬件内流动,完成一条指令的功能。这些由微指令组成的微程序是被固化于只读存储器ROM中的,因此也叫做“固件”。除了硬件设计人员,人们一般不知道它的存在。
think58好,好think58
[资料来源:http://THINK58.com]
[资料来源:http://think58.com]为了验证所设计的实验计算机的正确性,需要编写程序到机器上运行,看是否达到预期的效果就可以判断计算机的设计是否正确。
学生在做实验时,为了验证自己设计的模型机,通常是写一段程序在上面运行一下,如果还是用机器指令的话,工作量是相当大的,这样就体现不出实验的重点了。如果能给出一套汇编指令和相应的汇编器,学生直接用这套汇编指令编写程序来验证所设计的模型机,然后用汇编器对所编写的汇编程序进行编译,再把生成的机器代码文件下载到模型机上运行验证,这样学生可以用较少的时间来验证,而把更多的时间放在模型机的设计上。
think58好,好think58
[来源:http://think58.com]
[资料来源:http://think58.com]不同的机器有不同的指令系统,因此也没有通用的汇编器。例如我们通常用的汇编程序是针对Intel公司的8086系列机型的,它的那套汇编指令跟我们设计的汇编指令完全不同,因此我们的指令系统不适合它的汇编器。
实现一个软件需要两个方面:核心程序和界面,同样的实现一个汇编器也有两个方面:编译程序和程序界面。主要的功能是由编译程序来实现的,程序界面只是方便用户使用。因此,在整个实现的过程中可以把这两个方面分两个阶段进行。利用控制台命令检测编译程序的正确性,然后再用MFC生成整个界面。
本文来自think58
在Win32控制台下调试程序,可以只考虑各个函数,而不必顾及到太多的内容,比如程序的界面等等。而且,修改起来也比较方便,如果出现的词法语法上的错误,只要修改一下LEX和YACC源程序,然后用FLEX和BYACC运行一下就可以把控制台工程的三个文件更新一下。
为了验证程序的正确性,利用Visual C++ 6.0的AppWizard建立一个Win32控制台下的工程,把FLEX和BYACC生成的三个文件T_TAB.H,T_TAB.C,LEXYY.C全部拷贝进去。然后,再把LEXYY.C中的YYIN改一下,可以直接打开一个固定的汇编程序文件,也可以由用户输入一个汇编程序名,再用FOPEN函数打开。由于LEX与YACC生成的程序有向控制台输出结果的功能,所以不用再添加什么输出函数。
think58好,好think58 [来源:http://www.think58.com]
[资料来源:http://THINK58.com] 当汇编程序能够正确的进行语法分析时,就要考虑目标代码的生成了。首先根据YACC源程序的用户子例程段中的定义PickModel函数(其功能是把指令模板文件中的指令模板下载到全局变量cs中),在主函数中在语法分析前调用它,然后用PRINTF函数向控制台输出Codestream的内容,再根据调用GenerateFile函数(其功能是将代码串转化为目标文件),以Codestream为参数,生成目标文件,再向控制台输出。如果生成的目标文件也正确的话,那么整个核心程序就正确了,下一步是考虑界面的问题了。
[来源:http://think58.com]
包含资料:源程序+论文(15000字以上)+可执行程序+答辩稿ppt+开题报告+外文翻译
获取资料请您联系本站客服