FORTH 虚拟机内部结构
其他
2019-04-02 20:31:27
阅读次数: 0
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