原文:实现原创指令集的虚拟机

上两篇文章我介绍了我最近设计的一套指令集及其对应的虚拟机架构,这篇文章就来介绍虚拟机的实现过程。 虚拟机其实很简单,需要做的只是用一种指令去模拟另一种指令的功能。 为了运行速度,当然希望用尽量低级的方法去模拟,所以应该用汇编编写,但为了效率,我先用的C语言写出整体逻辑,后期再考虑汇编。 虚拟机原理 LVM虚拟机运行的流程是这样: 初始化:虚拟机内存和寄存器值。 链接:指定虚拟机要运行的代码。 可以 ...

2020-02-26 20:20 0 715 推荐指数:

查看详情

从零开始设计一套指令集及其虚拟机

前言 在半年前,我萌生了创造一门独特的编程语言的想法。大约三个月前,脑中的这个想法逐渐变得清晰,我想实现一种可以不用键盘就能编写代码的语言。比较准确得说应该是一门图形化编程语言,不完全是像蓝图脚本那样,而是结合代码和图形的优点。 设想中它是一门高级解释型语言,所以我先命名它为“H ...

Tue Feb 18 21:00:00 CST 2020 0 981
Android: samil语法指令集-基于dex文件结构的寄存器虚拟机

Smali文件结构解   Smali文件与java中的类是一一对应的,包括内部类和匿名内部类也会生成对应的smali文件(典型的比如实现某个接口的匿名内部类),所以你会看到.smali文件比.java文件更多。 smali文件是由Dalvik指令组成的,它有 ...

Mon Dec 23 19:43:00 CST 2019 0 764
JVM规范系列第6章:Java虚拟机指令集

一条 Java 虚拟机指令由一个特定操作的操作码和零至多个操作所使用到的操作数所构成。 虚拟机指令 = 操作码 + 操作数。 其中,操作码值分别为 254(0xfe)和 255(0xff),助记符分别为 impdep1 和 impdep2的两个操作码是作为“后门”和“陷阱”出现 ...

Thu Dec 20 04:21:00 CST 2018 0 1087
[三] java虚拟机 JVM字节码 指令集 bytecode 操作码 指令分类用法 助记符

说明,本文的目的在于从宏观逻辑上介绍清楚绝大多数的字节码指令的含义以及分类 只要认真阅读本文必然能够对字节码指令集有所了解 如果需要了解清楚每一个指令的具体详尽用法,请参阅虚拟机规范 指令简介 计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定 ...

Thu Aug 30 05:20:00 CST 2018 0 2833
RVZicsr指令集

Riscv中每个硬件线程(hart)有4096个独立地址空间的状态寄存器。我们可以通过Zicsr指令读写csr寄存器。总共有6条csr读写指令,这些指令之前都在RV32I/RV64I基础指令集里面,在最新文档中,被放在了Zicsr扩展指令集中。 6条指令的编码如下,其中[31-20 ...

Tue Aug 06 03:23:00 CST 2019 0 444
ARM指令集

ARM指令的基本格式 ARM指令的基本格式为: <Opcode> {<Cond>} {S} <Rd> , <Rn> { , <Opcode2> } 其中,< >内的项是必需的,{ }内的项是可选 ...

Thu Apr 05 22:16:00 CST 2012 0 12338
AT指令集

通用指令 at+cala   设置警报日期和时间 at+cgmi   厂家认证请求,返回模块厂家信 at+cgmm   模式认证请求,返回模块使用频段 at+cgmr   修正认证请求,返回软件版本 at+cgsn   产品IMET序列号 at+cscs   选择TE特性设置 ...

Sun Sep 16 03:08:00 CST 2018 0 1162
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM