本文档记录了 Asmplay 项目的开发计划和功能需求。
- ✅ 已完成
- 🚧 进行中
- 📅 计划中
- 💡 待讨论
-
📅 支持字符串指令
- MOVS/MOVSB/MOVSW - 字符串传送
- CMPS/CMPSB/CMPSW - 字符串比较
- SCAS/SCASB/SCASW - 字符串扫描
- LODS/LODSB/LODSW - 加载字符串
- STOS/STOSB/STOSW - 存储字符串
- REP/REPE/REPNE - 重复前缀
-
📅 支持更多移位指令
- RCL - 带进位循环左移
- RCR - 带进位循环右移
-
📅 完善乘除法指令
- IMUL - 有符号乘法
- IDIV - 有符号除法
- AAM - 乘法的 ASCII 调整
- AAD - 除法的 ASCII 调整
-
📅 BCD 运算指令
- DAA - 加法的十进制调整
- DAS - 减法的十进制调整
- AAA - 加法的 ASCII 调整
- AAS - 减法的 ASCII 调整
-
📅 位测试指令
- BT - 位测试
- BTS - 位测试并置位
- BTR - 位测试并复位
- BTC - 位测试并取反
- 💡 浮点运算指令(8087 协处理器)
- FADD/FSUB/FMUL/FDIV - 浮点运算
- FLD/FST - 浮点数加载/存储
- FCOM - 浮点数比较
-
🚧 断点功能增强
- ✅ 行号点击设置断点
- 📅 条件断点(如:CX == 10)
- 📅 数据断点(内存写入时暂停)
- 📅 断点管理面板(启用/禁用/删除)
-
🚧 监视窗口增强
- ✅ 变量监视
- 📅 表达式求值(如:[BX]+10)
- 📅 内存区域监视
- 📅 寄存器变化高亮
-
📅 执行历史
- 指令执行历史记录
- 回退功能(反向执行)
- 寄存器/内存变化时间线
-
📅 性能分析
- 指令执行次数统计
- 热点代码识别
- 执行时间分析
-
📅 内存视图增强
- ✅ 十六进制/ASCII 显示
- 📅 内存搜索功能
- 📅 内存比较(不同时刻)
- 📅 内存导出/导入
- 📅 虚拟滚动支持 (提升大内存浏览性能)
-
🚧 虚拟显示器增强
- ✅ 80x25 彩色文本模式
- ✅ 16 色支持
- ✅ 光标显示
- 📅 光标闪烁动画
- 📅 不同光标形状
- 📅 可调整显示器大小
-
🚧 键盘输入完善
- ✅ 实时按键捕获
- ✅ INT 16H 和 INT 21H 支持
- 📅 特殊键支持(F1-F12, Ctrl, Alt)
- 📅 扫描码完整支持
- 📅 虚拟键盘界面(移动端)
-
📅 图形模式支持
- 320x200 256色模式
- 640x480 16色模式
- 像素绘制指令
-
📅 鼠标支持
- INT 33H - 鼠标中断
- 鼠标位置检测
- 鼠标按键事件
-
🚧 文件操作
- ✅ 导入 ASM 文件
- ✅ 导出 ASM 文件
- 📅 项目保存/加载(包含断点、监视等)
- 📅 云端同步(localStorage/云存储)
- 📅 历史版本管理
-
📅 代码分享
- 生成分享链接(URL 参数)
- 二维码分享
- 嵌入代码(iframe)
- 📅 虚拟磁盘
- 模拟 DOS 文件系统
- INT 21H 文件操作(打开/读写/关闭)
- 目录操作
-
🚧 编辑器增强
- ✅ 语法高亮
- ✅ 代码自动补全
- 📅 代码折叠
- 📅 多行注释/取消注释
- 📅 代码格式化(自动缩进)
- 📅 查找/替换功能
- 📅 行跳转(Ctrl+G)
-
🚧 界面优化
- ✅ 响应式设计
- ✅ 亮色/暗色主题
- 📅 自定义主题配色
- 📅 面板大小调整(可拖拽)
- 📅 布局保存(用户偏好)
-
📅 演示模式(教学用)
- 极简模式(隐藏不必要面板,专注代码和CPU)
- 大字体/高对比度显示
- 鼠标点击/操作高亮(激光笔效果)
- 屏幕按键显示(显示当前按下的快捷键)
-
📅 多语言支持
- 英文界面
- 中文界面(已有)
- 其他语言
-
📅 辅助功能
- 快捷键配置
- 字体大小调整
- 高对比度模式
- 🚧 示例程序扩展
- ✅ 6 个基础示例
- 📅 图形绘制示例
- 📅 游戏示例(贪吃蛇、俄罗斯方块)
- 📅 数学算法(最大公约数、质数判断)
- 📅 数据结构(链表、栈、队列)
-
📅 指令可视化动画
- 堆栈操作动画(PUSH/POP 时的入栈出栈效果)
- 数据传输流向动画(MOV 指令的数据流动)
- 标志位变化高亮动画
-
📅 智能步骤解释
- 自然语言解释当前指令(如:"将 AX 的值 1234H 移动到 BX")
- 寻址方式图解(显示物理地址计算过程)
- 寄存器位级解释(显示每一位的含义)
-
📅 教学场景预设
- 寻址方式专项演示
- 中断调用流程演示
- 循环结构执行流程演示
-
📅 交互式教程
- 新手引导
- 逐步教程(分步骤执行)
- 挑战模式(编程练习)
- 成就系统
- 📅 代码模板
- 常用代码片段库
- 快速插入模板
- 用户自定义模板
-
📅 宏汇编支持
- MACRO/ENDM - 宏定义
- 宏参数和局部标签
- 条件汇编(IF/ELSE/ENDIF)
-
📅 过程支持
- PROC/ENDP - 过程定义
- 参数传递
- 局部变量
-
📅 模块化支持
- PUBLIC/EXTERN - 符号导出/导入
- 多文件项目
- 链接器功能
-
📅 汇编优化
- 代码优化建议
- 指令性能提示
- 内存使用分析
-
📅 错误检测
- 语法错误实时提示
- 警告信息(潜在问题)
- 代码静态分析
- 更精确的错误定位 (行号/列号/错误上下文)
-
📅 单元测试
- 指令执行测试
- 中断处理测试
- 寻址方式测试
-
📅 集成测试
- 示例程序回归测试
- 用户场景测试
-
📅 性能优化
- 指令执行速度优化
- 渲染性能优化
- 内存使用优化
-
📅 兼容性测试
- 跨浏览器测试
- 移动端适配
-
📅 在线部署
- GitHub Pages 部署
- Vercel/Netlify 部署
- 自定义域名
-
📅 SEO 优化
- Meta 标签优化
- Open Graph 标签
- 站点地图
-
📅 PWA 支持
- Service Worker
- 离线使用
- 安装到桌面
-
📅 桌面应用
- Electron 打包
- Windows/Mac/Linux 版本
-
🚧 文档完善
- ✅ README 更新
- ✅ 指令集文档
- 📅 开发者文档
- 📅 API 文档
- 📅 贡献指南
-
📅 视频教程
- 快速入门视频
- 功能演示视频
- 编程技巧视频
- 📅 社区建设
- GitHub Discussions
- Wiki 页面
- 用户反馈收集
-
💡 AI 辅助
- 代码补全(AI)
- 错误修复建议
- 代码解释
-
💡 协作功能
- 实时协作编辑
- 代码审查
- 在线聊天
-
💡 比赛模式
- 在线编程竞赛
- 排行榜
- 计时挑战
-
💡 扩展系统
- 插件架构
- 自定义指令
- 第三方扩展市场
-
📅 汇编器重构 (
utils/assembler.js)- 改进错误处理,提供准确的行号和列号
- 模块化解析逻辑,分离指令解析和伪指令处理
- 增加符号表管理类
-
📅 CPU 核心优化 (
utils/cpu.js)- 统一标志位更新逻辑
- 优化指令执行分发机制 (Switch-case vs Lookup Table)
- 完善中断处理机制
-
📅 常量管理
- 检查
src/constants/index.js的引用,确保无硬编码魔法数字
- 检查
-
📅 组件性能
-
MemoryView虚拟滚动优化 (处理大内存查看) -
Monitor渲染优化 (避免不必要的重绘)
-
- 📅 内存泄漏检查
- 📅 长时间运行稳定性
- 📅 大型程序性能
- 📅 移动端触摸优化
- 📅 Safari 兼容性
- 📅 边缘情况处理
- ✅ 基础指令集支持
- ✅ 基本调试功能
- ✅ 虚拟显示器
- ✅ 键盘输入
- ✅ 6 个示例程序
- ✅ 主题切换
- 🚧 字符串指令支持
- 🚧 条件断点
- 🚧 执行历史和回退
- 🚧 代码折叠和格式化
- 🚧 项目保存/加载
- 📅 宏和过程支持
- 📅 多文件项目
- 📅 图形模式显示
- 📅 交互式教程
- 📅 完整 8086 指令集
- 📅 完善的调试功能
- 📅 PWA 支持
- 📅 丰富的示例和教程
- 📅 完整文档
欢迎贡献!以下是一些可以参与的方式:
- 报告 Bug: 在 GitHub Issues 提交问题
- 建议功能: 在 GitHub Discussions 讨论新想法
- 提交代码:
- Fork 仓库
- 创建功能分支
- 提交 Pull Request
- 完善文档: 改进文档和教程
- 分享示例: 贡献有趣的示例程序
当前最需要的贡献:
- 🔥 字符串指令实现
- 🔥 条件断点功能
- 🔥 更多示例程序
- 🔥 移动端优化
- 🔥 英文文档
- 📧 邮件: chizukuo@icloud.com
- 🐛 Issues: GitHub Issues
- 💬 讨论: GitHub Discussions
最后更新: 2025年12月1日
维护者: chizukuo
💡 注意: 此 TODO 列表会持续更新。优先级可能根据用户反馈和实际需求调整。