优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

VC实验计算机的汇编器设计与实现

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
摘 要

为教学改革做准备,用FPGA设计了一个实验计算机。为了更加方便的验证设计的正确性,需要设计一个汇编器,把汇编语言源程序转化为目标代码。本设计采用词法分析生成工具LEX和语法分析生成工具YACC,使得生成的代码质量更高,更可靠,更容易改动词法和语法规则。本文设计了指令模板的方法,解决了汇编器的灵活性和通用性问题。汇编器的核心部分在WIN32控制台下调试,界面利用MFC设计。

【www.think58.com计算机毕业论文网】

think58.com

[资料来源:THINK58.com]

[资料来源:http://think58.com]

本文来自think58 [资料来源:http://think58.com]

关键字:汇编器,词法分析,语法分析,实验计算机,教学改革. copyright think58

[资料来源:http://www.THINK58.com]

第一章 问题的提出§1 目前的教学情况

《计算机组成原理》是一门重要的计算机基础课,它讲解了计算机从部件到整体的组织结构和工作原理,由于微电子和计算机学科的迅速发展,对该课程教学提出了更高的要求。教学方式有理论讲解和实验两种,实验是教学中的重要环节,目前的实验教学偏重于验证计算机的工作原理,效果并不是很理想,以后的实验的发展趋势是将更多的偏向于设计。 copyright think58 [资料来源:THINK58.com]

§2 设计一个实验计算机

为教学改革作论证,用FPGA实现了一个实验计算机,其硬件控制是由微程序实现。计算机的结构中,位于最底层的是逻辑线路,也叫硬件,是由机器语言直接操纵的。如果计算机的控制器是由微程序的方式构造的,这一层便是微程序级,其功能是将每条机器指令转化为一系列由微命令对应的微程序,按微程序的先后顺序发出控制命令,就可导致数据在硬件内流动,完成一条指令的功能。这些由微指令组成的微程序是被固化于只读存储器ROM中的,因此也叫做“固件”。除了硬件设计人员,人们一般不知道它的存在。

think58好,好think58

[资料来源:http://THINK58.com]

[资料来源:http://think58.com]

为了验证所设计的实验计算机的正确性,需要编写程序到机器上运行,看是否达到预期的效果就可以判断计算机的设计是否正确。 [来源:http://think58.com]

§3 面临的问题

学生在做实验时,为了验证自己设计的模型机,通常是写一段程序在上面运行一下,如果还是用机器指令的话,工作量是相当大的,这样就体现不出实验的重点了。如果能给出一套汇编指令和相应的汇编器,学生直接用这套汇编指令编写程序来验证所设计的模型机,然后用汇编器对所编写的汇编程序进行编译,再把生成的机器代码文件下载到模型机上运行验证,这样学生可以用较少的时间来验证,而把更多的时间放在模型机的设计上。

think58好,好think58

[来源:http://think58.com]

[资料来源:http://think58.com]

不同的机器有不同的指令系统,因此也没有通用的汇编器。例如我们通常用的汇编程序是针对Intel公司的8086系列机型的,它的那套汇编指令跟我们设计的汇编指令完全不同,因此我们的指令系统不适合它的汇编器。 内容来自think58 [资料来源:www.THINK58.com]

第五章 汇编器的实现

实现一个软件需要两个方面:核心程序和界面,同样的实现一个汇编器也有两个方面:编译程序和程序界面。主要的功能是由编译程序来实现的,程序界面只是方便用户使用。因此,在整个实现的过程中可以把这两个方面分两个阶段进行。利用控制台命令检测编译程序的正确性,然后再用MFC生成整个界面。

本文来自think58

[版权所有:http://think58.com]

[资料来源:http://www.THINK58.com]

§1 Win32控制台下的调试

在Win32控制台下调试程序,可以只考虑各个函数,而不必顾及到太多的内容,比如程序的界面等等。而且,修改起来也比较方便,如果出现的词法语法上的错误,只要修改一下LEX和YACC源程序,然后用FLEX和BYACC运行一下就可以把控制台工程的三个文件更新一下。 内容来自think58

[版权所有:http://think58.com]

为了验证程序的正确性,利用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为参数,生成目标文件,再向控制台输出。如果生成的目标文件也正确的话,那么整个核心程序就正确了,下一步是考虑界面的问题了。 copyright think58

[来源:http://think58.com]

本文来自think58

[资料来源:http://www.THINK58.com]

包含资料:源程序+论文(15000字以上)+可执行程序+答辩稿ppt+开题报告+外文翻译 copyright think58 [资料来源:http://www.THINK58.com]

[来源:http://think58.com]

获取资料请您联系本站客服 [资料来源:http://www.THINK58.com]