一个简单的虚拟机的构建与实现
本帖最后由 ttbbs 于 2021-12-7 11:29 编辑看了一些资料,本人心血来潮,构思了一个虚拟机。
准备工作
定义ip
栈
int *ip;
string stack;
string mem;
bool running=1;
//初始化函数加于此
while(running){
switch(ip){
//handler
}
ip+=4;
}
下面举例实现初始化:
push edi
lea edi,mem
mov ,eax
mov ,eax
......
lea ebp,stack
下面举例handler
Vpushm32:
ip+=4;
mov ecx,*ip
mov eax,
add ebp,4
mov ,ecx
break;
Vmovm32:
ip+=4;
mov ecx,*ip
mov eax,
ip+=4;
mov ecx,*ip
mov ebx,
sub ecx,4
mov ebx,eax
mov ,eax
break;
周末回去补充。 zxqqqsoft 发表于 2021-12-7 11:52
楼主是不是想做个自己的指令集,自己的VM来解析执行,🐂🐂
没错,答对了。 基于X86要模拟的指令工作量不小,如果只是验证概念,可以参考python的VM,自己定义一套字节码 不懂。可以有图教教不 这个是啥啊? 支持一下,虽然不会 没看懂,有图片吗? 楼主是不是想做个自己的指令集,自己的VM来解析执行,🐂🐂 这是用在手机上的虚拟机还是电脑上的? 高手,了不起!!!!