zoukankan      html  css  js  c++  java
  • FORTH 虚拟机内部结构

    X86架构的 JLP_DOSX_Forth
    CS:段存放机器指令和与硬件有关的系统数据
    DS:段存放用户数据和虚拟机的堆栈等数系统据
    ES:段存放虚拟机指令和字典
    SS:存放系统堆栈和多任务系统数据表等
    虚拟机工作原理

    1.指令堆栈指针:      RP → BP
    2.算术堆栈指针:      AP → DI
    3.指令指针:         IP → SI
    4.字指针:           WP → BX
    5.字指令执行:(NEXT)
    WP := ES:[IP]       ; WP的内容是字的CFP
    IP := IP+2           ; 下一条指令的IP
    ES:[WP] JMP          ; 执行机器代码
    6.虚拟指令执行:(DOVM)
    RP   := RP-2        ; 指令堆栈进栈准备
    [RP] := IP          ; 当前IP进堆栈
    WP   := WP+2        ; WP的内容是新的指令地址
    IP   := WP          ; 新的IP
    (NEXT)
    7.虚拟指令返回:(ENDVM)
    IP :=  [RP]          ; 老IP出堆栈
    RP :=  RP+2          ; 指令堆栈恢复
    (NEXT)

    虚拟机程序状态字:PSW

                   
     

    Bit (位)

     
     

    名称

     
     

    内容

     
     

    定义

     
     

    0x0080

     
     

    WorkState  

     
     

    工作状态

     
     

    0:执行状态

     

    1:编译状态

     

     

    虚拟机器码属性字节:VCB

                           
     

    Bit (位)

     
     

    名称

     
     

    内容

     
     

    定义

     
     

    0x80

     
     

    ImmediateWord  

     
     

    立即字

     
     

    0:普通字

     

    1:立即执行字

     
     

    0x40

     
     

    FinishedWord

     
     

    完成字

     
     

    0:正常字

     

    1:未结束定义字



  • 相关阅读:
    通过模板类简单实现Spark的JobServer
    aggregate 和 treeAggregate 的对比
    IntelliJ Idea 常用快捷键列表
    dataframe 数据统计可视化---spark scala 应用
    用java api读取HDFS文件
    .net Core 简单中间件使用
    .Net Core Ocelot网关使用熔断、限流 二
    .Net Core Ocelot网关使用 一
    Docker 问题处理
    CentOS 创建用户
  • 原文地址:https://www.cnblogs.com/meihao1203/p/10645003.html
Copyright © 2011-2022 走看看