[发明专利]一种51单片机处理器指令集虚拟化仿真方法有效
申请号: | 202211114546.0 | 申请日: | 2022-09-14 |
公开(公告)号: | CN115421862B | 公开(公告)日: | 2023-09-26 |
发明(设计)人: | 贾张涛;付修锋;勉斌;安恒;李雅斯;刘美佳;孔祥炳;金玉川;安顺 | 申请(专利权)人: | 北京计算机技术及应用研究所 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 中国兵器工业集团公司专利中心 11011 | 代理人: | 刘瑞东 |
地址: | 100854*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 51 单片机 处理器 指令 虚拟 仿真 方法 | ||
本发明涉及一种51单片机处理器指令集虚拟化仿真方法,属于虚拟仿真领域。本发明通过对256条指令的仿真,提供51单片机嵌入式处理器软件的运行环境,为51单片机嵌入式处理器软件的开发提供支撑。本发明提出的方案,能够实现51单片机处理器的指令集仿真,仿真精度高,仿真执行效率高;本发明采用数组、链表等实现寄存器、内存的仿真,能够完成仿真51单片机处理器。
技术领域
本发明属于虚拟仿真领域,具体涉及一种51单片机处理器指令集虚拟化仿真方法。
背景技术
指令集仿真是处理器虚拟化技术最重要的支撑技术,指令集仿真允许特定指令集上的软件运行在另一类异构的指令集上。在指令集层次上实现虚拟化,实际上就是将某个硬件平台上的二进制代码转换为另一个硬件平台上的二进制代码,从而实现不同指令集间的兼容,这一技术也被称为二进制翻译。虚拟化技术实现有2种主要方式:解释执行、动态二进制翻译。
解释器对源二进制代码逐条进行分析,根据译码结果即指令类型,分解相应的解释例程执行。解释例程在一个由软件维护的源体系结构(包括各种结构寄存器、内存状态等)上用等价的一条或多条目标指令来模拟源指令的执行,获得和源指令同样的执行效果。解释器工作过程主要包括“取指令—分析指令—完成指令所需的操作—修改处理器状态”等步骤,如此循环。如图1所示。
基于解释执行的仿真器在主机中维护一个精确的处理器数据结构,具有很高的仿真精度,可以实现精确的寄存器、存储器、流水线,除了模拟源程序的功能外,可以得到精确的性能指标,如每条指令在流水线中的时钟周期,堆栈模拟等。
但是精确的解释执行方案存在仿真效率低下的问题,本发明基于解释执行技术方案,提出了快速解释执行的仿真方案,实现仿真效率的提升。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种51单片机处理器指令集虚拟化仿真方法,以解决精确的解释执行方案存在仿真效率低下的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种51单片机处理器指令集虚拟化仿真方法,该方法包括如下步骤:
S1、51单片机目标文件解析
打开51单片机编译后的可执行文件*.Hex,Hex文件的每一行中都包含了一个hex记录,这些记录是由一些代表机器语言代码和常量的16进制数据组成;解析Hex文件信息,获取可执行文件中的代码段;
S2、51单片机内存仿真及代码加载
采用数组的方式对51单片机内存进行仿真,记为C51-Vmemory,并加载代码段;
S3、51单片机寄存器仿真
通过数组模拟寄存器,通过数组操作模拟寄存器读写操作,实现寄存器的模拟;
S4、51单片机指令描述
每条指令Instruction有一个唯一的表示,51单片机指令长度非固定长度,共计256条;
S5、51单片机读取指令
根据程序计数器PC(Program Count)的值,从51单片机仿真内存C51-Vmemory中读取指令Instruction,获取当前PC对应的指令Instruction;
S6、51单片机指令译码
根据读取的指令Instruction,取Instruction的高8位,该字段为指令的指令码Opcode,每个数值对应一条指令;
S7、51单片机指令翻译
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京计算机技术及应用研究所,未经北京计算机技术及应用研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211114546.0/2.html,转载请声明来源钻瓜专利网。