返回列表 发布新帖
查看: 6|回复: 1

[前端与移动开发] 虚拟机设计:从0构造8051虚拟机

注册时间
2012-9-3
最后登录
2026-9-22

2万

主题

6458

回帖

10万

积分

管理员

2012年到2024年,感谢各位会员朋友的支持!

推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老vip会员

QQ
发表于 1 小时前 | 查看全部 |阅读模式
想搞懂虚拟机到底怎么跑起来的,光看理论容易卡壳,这门课直接带你用代码把答案写出来。它从零行代码起步,一步步实现一个8051芯片的虚拟机,完整支持标准8051内核指令集的解析和运行,中断、串口、定时器这些外设也做了模拟。

整个实现过程是跟着8051指令集手册走的,逐条分析指令编码、寻址模式和具体执行流程,最后落到指令的加载与执行上。比较有意思的是收尾部分:把虚拟机移植到ST的STM32芯片(ARM内核)上,跑出类似Java那种一次编译、多平台运行的效果。

大致分这么几步:

1. 搭起虚拟机的基本框架,跑通取指、译码、执行的循环
2. 对照手册逐条实现指令,重点啃数据传输类MOV指令这类基础指令
3. 补上中断、串口、定时器的模拟
4. 整体移植到STM32平台验证跨平台运行

课程配套源码,边看边调比较顺手。适合已经会点C语言、想从底层理解虚拟机和指令集是怎么回事的人,尤其是平时玩单片机、对STM32不陌生的朋友。如果只是想调用现成的虚拟机,这门课偏底层,要有动手写代码的心理准备。

资源目录:
1-1 课程简介.mp4
1-3 软件安装与介绍.mp4
1-5 指令集简介.mp4
2-1 初始化虚拟机.mp4
2-2 建立基本的运行流程.mp4
2-3 初次解析指令运行.mp4
2-4 加载hex文件.mp4
2-5 循环遍历检测多个文件.mp4
2-6 实现内存测试(1).mp4
2-7 实现内存测试(2).mp4
2-8 实现内存测试(3).mp4
2-9 实现运行结果测试.mp4
2-10 打印运行结果信息.mp4
3-1 建立指令描述表.mp4
3-2 数据传输类MOV指令(1).mp4
3-3 数据传输类MOV指令(2).mp4
3-4 数据传输类MOV指令(3).mp4
3-5 数据传输类MOV指令(4).mp4
3-6 数据传输类MOV指令(5).mp4
3-7 数据传输类MOVC指令.mp4
3-8 数据传输类MOVX指令.mp4
3-9 出栈入栈指令.mp4
3-10 交换类指令.mp4
4-1 逻辑与指令ANL的解析.mp4
4-2 逻辑或ORL指令的解析.mp4
4-3 逻辑异或XRL指令的解析.mp4
4-4 取反和移位指令.mp4
4-5 处理psw的奇偶校验位.mp4
5-1 加法指令add(1).mp4
5-2 加法指令add(2).mp4
5-3 自增指令inc.mp4
5-4 自减指令dec.mp4
5-5 减法指令subb(1).mp4
5-6 减法指令subb(2).mp4
5-7 乘法mul_ 除法div_ da指令.mp4
6-1 跳转、调用与函数返回指令(1).mp4
6-2 跳转、调用与函数返回指令(2).mp4
6-3 条件跳转类指令(1).mp4
6-4 条件跳转类指令(2).mp4
6-5 位运算与跳转类指令(1).mp4
6-6 位运算与跳转类指令(2).mp4
7-1 实现串口的发送(1).mp4
7-2 实现串口的发送(2).mp4
7-3 实现串口的接收.mp4
7-4 定时器模拟.mp4
7-5 中断系统模拟.mp4
7-6 支持不同的寄存器组.mp4
8-1 移植虚拟机到ARM芯片(Cortex-M3).mp4
simu8051.zip

虚拟机设计:从0构造8051虚拟机 (图1)

虚拟机设计:从0构造8051虚拟机 (图1)


游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

34

主题

2万

回帖

4703

积分

超级VIP会员

积分
4703
发表于 半小时前 | 查看全部
从0写8051虚拟机这个思路挺适合我,先存了。STM32移植那步估计得注意下工具链和编译选项。
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

在线咨询
投诉/建议联系

QQ 919733497

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
Copyright © 2012-2026 教程论坛 版权所有 All Rights Reserved.  |网站地图
关灯 在本版发帖 QQ客服返回顶部
快速回复 返回顶部 返回列表