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:未结束定义字



猜你喜欢

转载自www.cnblogs.com/meihao1203/p/10645003.html