计算机有关论文范例,与嵌入式FORTH虚拟计算机的实现相关计算机毕业设计和论文

时间:2020-07-04 作者:admin
后台-系统-系统设置-扩展变量-(内容页告位1-手机版)

该文为计算机有关本科论文范文,与嵌入式FORTH虚拟计算机的实现相关计算机毕业设计和论文,可作为计算机安全专业计算机论文写作研究的大学硕士与本科毕业论文开题报告范文和职称论文参考文献资料。免费下载教你怎么写计算机及嵌入式及嵌入式应用方面的优秀学术论文范文。

【摘 要 】在嵌入式领域,如何降低系统与运行环境之间的相关性,在各种异构的嵌入式平台上快速构建系统一直是研究的重点.本文基于FORTH语言,通过对虚拟机工作原理的分析,以自主构建的JLP FORTH虚拟平台为例,描述了虚拟机的实现原理、指令定义、存储方法和核心算法,并且在存储上提出以分段的方式分离代码和数据,通过该方法构建的FORTH虚拟机具有了更高的系统安全性,并且调试方便、扩展性强,特别适合应用于嵌入式系统.

【关 键 词 】FORTH;虚拟计算机

1.引言

虚拟机最初是美国计算机科学家波佩克(Popek)与戈德堡(Gerald)在虚拟化需求中给出了定义,专指有效的、孤立的真实计算机的副本[1],现在则指可像真实计算机一样运行程序的软件实现,包括跟任何真实计算机无关的虚拟机[2].根据运用和与机器的相关性可分为系统虚拟机和程序虚拟机,一个提供了完整的操作系统,另一个则以运行单个计算机程序为主.在嵌入式应用领域,嵌入式系统相关的CPU芯片和微计算机硬件系统种类繁多,并且不断推陈出新,甚至多核处理器已被普遍采用[3].但是在新平台上,难以针对每一种芯片或平台制定一种计算机语言来编程.解决的方法一是可采用公共计算机语言,用不同的编译器来生成机器码,但该方法需要具有该语言的编译器,在新平台上往往难以具备.另一种方法即建立一个虚拟机,然后用一个计算机语言,用一个解释器来解释执行[4].采用该方法,难点在于嵌入式虚拟机的构建,要能够适应多种环境、快速构建、可扩展.FORTH是一种与众不同的计算机程序设计语言.它具有极强的扩展性,通过字的定义,可实现不断堆叠和扩展.同时,它又具有极好的交互性,指令可解释执行,这就为应用的调试带来了极大的便捷.本文基于FORTH语言,以自主构建的JLP FORTH虚拟平台为例,详细阐述FORTH虚拟机的实现原理和核心实现方法,模拟和实现了通用的交互式计算机结构,实现了真实计算机的典型工作流程[4],并且一改过去FORTH代码和数据混合存储的方式,在内存的存储上以分段的方式将内存分为CS、VS、DS、SS四个段,分别存储指令和数据,这样,就实现了系统指令和用户数据的分离,有效地提高了代码和系统的安全性,并且调试方便、扩展性强,尤其适合应用于对安全性、兼容性、移植性、扩展性、交互性要求高的嵌入式系统领域.

2.FORTH虚拟机实现原理

真实计算机的基本工作原理是存储和控制.计算机在控制器的指挥下,取出预先存储的指令序列(即程序)和数据,通过控制器译码,按指令的要求,取出数据完成运算,再把结果重新存储起来,如此循环,直至完成全部指令.对真实计算机来说,这个过程依托中央处理器CPU来实现,CPU包括运算器、控制器和寄存器.如果描述CPU核心工作过程,主要包括以下步骤:(1)提取程序计数器值,该值指向的地址即指令地址;(2)从该地址取出指令;(3)程序计数器增加指令长度,即指向下一条指令地址;(4)解码执行指令;(5)返回结果.

由于FORTH虚拟机是工作在真实计算机上的,因此要实现FORTH虚拟机必须用对应关系依托真实计算机的代码来实现这个核心过程.在FORTH虚拟机中,用核心算法——NEXT模拟了这个过程,将虚拟机指令和真实计算机指令实现对应,通过建立字典表,设置地址跳转,以串线码的方式将虚拟机命令字和直接机器指令实现对应,依托真实计算机指令完成了CPU的处理过程[6].如图1所示.

在字典表存放了各个FORTH高级字的名称和代码执行地址,其中也有S字的定义,在S字的代码场中存有S字的代码执行地址,该代码执行地址与code所描述的直接机器执行代码相对应,构成间接串线编码.当执行该指令时,首先查找字典表,找到S定义后,取出其WPF指令码中存放的地址,然后跳转到代码场该地址中,由于是FORTH高级字定义,所以首先执行“:”机器码将程序计数器所记录的下一条指令返回地址压入栈,然后跳转到参数场地址依序执行,直到最后的“;”返回指令执行后,再将原先存入栈的返回地址弹出,这样即完成一条指令的执行.其中,代码场和参数场分别存储指令和参数.以下以JLP FORTH虚拟机为例,详细描述其字典表、代码场、参数场的定义、虚拟机存储和指针的分配,以及核心算法.

嵌入式FORTH虚拟计算机的实现参考属性评定
有关论文范文主题研究: 计算机类论文范文 大学生适用: 专升本毕业论文、学术论文
相关参考文献下载数量: 30 写作解决问题: 本科论文怎么写
毕业论文开题报告: 标准论文格式、论文选题 职称论文适用: 职称评定、职称评初级
所属大学生专业类别: 本科论文怎么写 论文题目推荐度: 经典题目

3.指令的定义和存储

FORTH虚拟计算机采用该虚拟指令的存储地址来表示该指令,称为“地址码”.虚拟计算机的每个指令用名称(例如+、-、*)来表示,称为“字(Word)”.FORTH虚拟计算机的指令包括“复合字”和“基本字”.基本字也称为“低级字”,由真实计算机机器码和数据组成的,低级字组合可构成“复合字”,所以,“复合字”也称为“高级字”.

高级字和低级字都可通过定义扩展.扩展高级字用“:”冒号定义,通过高级字定义用已有的指令形成新的指令.格式如下:

:名字 等 leave 等 ;

其中执行leave指令可以跳出该FORTH字的执行,忽略掉其后的指令.扩展低级字则用机器码定义,格式如下:

CODE 名字 等 等 NEXT, END-CODE


计算机本科毕业论文怎么写啊
播放:27306次 评论:4158人

其中NEXT,指令可以让计算机执行下一条虚拟机指令.

对于真实计算机,用编译器生成的指令码序列中不需要保留指令名称.FORTH虚拟计算机不同,由于需要虚拟机执行和构造新的虚拟机指令,因此在虚拟计算机中要保留FORTH字的名称,用于存储FORTH字的存储空间就是“字典表”.在JLP FORTH虚拟平台中,字典表结构如表1,在图1中也有标注.

WPF里存储的指令码即FORTH字在存储空间的地址.由于允许FORTH字的名称长度不一样,因此采用链表结构可有效地存储它们,在LPF中即存放了下一个字的定义地址.

代码场和参数场用于共同存储FORTH字,如表2. 其中CFA存放实现虚拟机功能的CPU机器码开始地址.PFA依次存放组成它的虚拟机指令.对于基本字PFA的内容不一样.对于一个常数基本字,PFA就直接存放这个常数.对于一个变量基本字,PFA就存放数据段中这个变量的地址[6].

4.内存和指针分配

以往FORTH并未将代码和数据分开,在嵌入式应用中,往往指令和程序相对固定,而代码和数据混合致使调试不方便,同时在系统安全上也带来问题.在JLP FORTH虚拟机上,将内存分为代码段CS、代码空间VS、数据段DS、系统段SS四个部分.

(1)代码段CS:存放真实计算机的机器指令、内存分配信息以及与硬件有关的系统数据.

(2)“代码”空间VS:用来存放虚拟计算机的指令和字典.

(3)数据段DS:用来存放用户数据和虚拟机的堆栈等数据.

(4)系统段SS:用来存放系统堆栈和多任务系统数据表等,达到分离系统任务和用户,保证系统安全的目的.

采用这种存放方式,就可将CS和VS放在FLASH中,将DS和SS放在RAM,如此实现程序和数据的分离.这种新的虚拟机架构不仅可以适合嵌入式系统,也适合PC结构系统,而且更有利于内存保护的实现.

真实计算机主要依靠寄存器来实现加减乘除等运算.例如将AX和BX寄存器的内容相加结果放到AX中,因此寄存器的数量是衡量CPU运算能力的一个指标.FORTH虚拟计算机则采用直接面向运算过程的方法,采用堆栈的方式来实现简单的运算,例如取出堆栈顶上的两个数相加后,结果放回堆栈顶.对于复杂运算,直接用复合字或者机器码写出面向数据的算法,比如对矢量和矩阵的运算等.由于没有寄存器的概念,只有表示系统工作状态的各种系统变量以及实现系统运行的各种指针.为了提高虚拟计算机的执行效率,用间接寻址的CPU寄存器来实现.对应关系如下(注:箭头为在X86计算机中对应的寄存器).

通过这些指针的定义,FORTH虚拟机可实现各种各样复杂的算法.

5.NEXT核心算法与函数

FORTH虚拟机的核心算法——NEXT,它完成了指令的控制执行过程.如借用以上描述,用形式化的方法表示为:

由于FORTH虚拟机是工作在真实计算机上,因此要实现FORTH虚拟机必须用真实计算机的代码来实现这个核心过程,以X86汇编语言为例,其实现FORTH虚拟机核心过程的代码为(16位地址空间):

ES:BX,SI MOV

SI,#2 ADD

ES:[BX]JMP

从代码可以看出,它非常象一个子过程或函数的调用.在真实计算机中,函数是非常常用的一个功能,是若干指令的有序集合.在FORTH虚拟计算机中高级字就可认为是“函数”.表3是真实计算机和FORTH虚拟计算机在函数调用中的执行过程对比.

6.实例

以下采用自下而上的编程方法,构造FORTH字P_DUMP用于查看内存基本信息,以此为例说明FORTH虚拟计算机相关程序的设计方法.参数有查看内存的段地址、偏移地址和区域长度.

//----初始化-------------------

HEX ROOT_ONLY // 使用根字典

//----内存显示-------------------

:.BYTE //(n--) 显示一个字节数据

00FF AND // 数据都是16位宽,只用低8位

20 EMIT // 先显示一个空格

10 /MOD // 用16除 结果为 ( -- 余数 商)

H.H.; // 依次显示高四位和低四位

: .INT // ( n -- ) 显示一个16位整数数据

10 U/MOD 10 U/MOD 10 U/MOD 10 U/MOD DROP // 得到四个四位16进制

H.H.H.H.; /

关于嵌入式FORTH虚拟计算机的实现的本科论文范文
计算机有关论文范例
7; 依次显示

: .CHAR // ( n -- ) 显示一个字符

00FF AND // 字节 ASC II 的字符

DUP 20 < OVER 7F > OR if DROP 2E endif // 只显示ASC II 的字符码 如果是字符,显示为“.”,避免破坏显示列表

EMIT ;

: .16BYTES // ( segment offset --- ) 显示一整行16个字节

CRLF LDUP SWAP .INT 3A EMIT .INT 1 SPACES // 显示开始地址

LDUP 0F 0 1 for P_COUNT .BYTE endfor LDROP // 显示16进制数值内容

4 SPACES 0F 0 1 for P_COUNT .CHAR endfor LDROP // 显示16个字符

: P_DUMP // ( segment offset length --- )

DEPTH 3 < 2 ERROR // 检查参数的数量是否足够

DUP 0 等于等于 if CRLF ,” 长度为零!" .S ABORT endif // 长度为零

DUP F000 AND 0 !等于 if CRLF ,” Too long!” .S ABORT endif // 长度太长

>S DUP FFF0 AND 10 + SWAP DUP 000F AND// ( 段 整数偏移 原始偏移 起始空格数 -- )

S> OVER 10 SWAP - - >S 3 PICK -ROT // ( 段 整数偏移 段 原始偏移 起始空格数 -- )

CRLF ,” seg.off.” .S 0F 0 1 for I .BYTE endfor // 显示栏名

4.SPACES 0F 0 1 for I H. endfor

CRLF 2 PICK .INT 3A EMIT 1 PICK FFF0 AND .INT 1 SPACES // 显示开始地址

2.PICK 2 PICK 2 PICK DUP 3 * SPACES // 跳过开始的空数据

10 SWAP - 1 1 for P_COUNT .BYTE endfor LDROP //显示头一行其余数据

4.SPACES DUP SPACES

10 SWAP - 1 1 for P_COUNT .CHAR endfor LDROP // 头一行其余字符

S> 10 U/MOD SWAP >S // ( seg offset lines -- ) 中间的部分

DUP 0 >

if 1 1 for LDUP .16BYTES 10 + endfor // 显示中间行

else DROP

endif

S> DUP 0 > if // 是否有最后一行


该文来源:http://www.sxsky.net/jisuanji/jsjaq/384078.html

CRLF 2 PICK .INT 3A EMIT 1 PICK .INT 1 SPACES // 有最后一行

2.PICK 2 PICK 2 PICK // 复制参数

1.1 for P_COUNT .BYTE endfor LDROP // 最后一行数据数据

10 OVER - 3 * SPACES 4 SPACES

1.1 for P_COUNT .CHAR endfor LDROP // 最后一行字符

else

DROP LDROP // 无最后一行

endif

CRLF ;

7.结论

对于嵌入式应用来说,一个可扩展性好、可移植性好、可裁剪、实现快速,并且便于调试的嵌入式虚拟机,能给嵌入式应用的开发带来极大的方便.基于FORTH构筑的虚拟机,引入字典表完成指令和机器代码的对应,并用字定义来完成指令的扩展,使系统的结构具有了极大的灵活性和扩展性,仅仅通过对基本字的堆叠、组合就可完成高级字的层层定义,实现极其复杂的系统.在JLP FORTH中存储分段使得程序指令和数据能相对独立,有效&

1 2

计算机有关论文范例,与嵌入式FORTH虚拟计算机的实现相关计算机毕业设计和论文参考文献:

嵌入式应用论文
板仓库的电子商务系统开发平台的设计与实现",《计算机应用》,2004年第6期,2004年6月,[2]"ane-busines。实时与嵌入式操作系统 内容以系统源码为基础,理解嵌入式实。

嵌入式硕士论文
嵌入式论文参考文献年度,嵌入式论文参考文献小学p嵌入式诊断系统制作4.1诊断系统应用程式制作,本文诊断系统应用程式中,包含两种车辆通讯协定(iso14230及saej193。

嵌入式论文参考文献
嵌入式论文参考文献年度,嵌入式论文参考文献小学p嵌入式诊断系统制作4.1诊断系统应用程式制作,本文诊断系统应用程式中,包含两种车辆通讯协定(iso14230及saej193。

大学生如何实现就业
大学生如何实现就业杭州式面临变革.然而,七年来,越来越多的青年人毕业,全国毕业生总数从七年前不到500万,增加到今年727万.大学生就业已经成为就业中的首要问题.这几天,亚。

嵌入式硕士毕业论文
嵌入式论文参考文献年度,嵌入式论文参考文献小学p嵌入式诊断系统制作4.1诊断系统应用程式制作,本文诊断系统应用程式中,包含两种车辆通讯协定(iso14230及saej193。

用asp技术实现简易的毕业文检索系统
文,使得论文资源得到有效利用.本文致力于研究设计一个简易版的毕业论文检索系统,能够快捷、方便、全面、准确地实现论文检索功能.1开发技术及数据。

计算机应用软件论文
级计分.,五,报告(论文)用钢笔誊写或用计算机打印. 。计算机应用毕业论文提纲软件形语言有关知识,能利用数据采集卡和相应的硬件设施完成一般仪表设计任务.使学生掌握虚拟仪器系统软。

计算机软件应用论文
级计分.,五,报告(论文)用钢笔誊写或用计算机打印. 。计算机应用毕业论文提纲软件形语言有关知识,能利用数据采集卡和相应的硬件设施完成一般仪表设计任务.使学生掌握虚拟仪器系统软。

3d计算机图形学
合课程设计任务书论,网络数据库技术,管理信息系统,计算机控制技术,计算机控制技术,嵌入式系统与应用,信号检测与控制,动画游戏设计,游戏设计软件,3d模型软件 。计算机图形学基。

中职计算机毕业论文
中职计算机教学论文题目全国课题研究方向和题目参考,一,教学创新应用平台如学习社区,虚拟社区(博客,微博,qq群),bbs论坛,教研平台等的研究.,1.中职学校虚拟学习社区应用研究。

后台-系统-系统设置-扩展变量-(内容页告位2-手机版)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:123456789@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关推荐

指令有关论文例文,与电视―指令计算机系统与研制相关计算机毕业论文设计任务书

关于指令及电视及系统方面的免费优秀学术论文范文,指令有关计算机毕业论文设计任务书,关于电视―指令计算机系统与研制相关论文例文,对写作指令论文范文课题研究的大学硕士、本科毕业论文开题报告

后台-系统-系统设置-扩展变量-(内容页告位3-手机版)