Skip to content

Latest commit

 

History

History
458 lines (356 loc) · 10.7 KB

File metadata and controls

458 lines (356 loc) · 10.7 KB

TODO List - Asmplay 开发计划

本文档记录了 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 兼容性
  • 📅 边缘情况处理

📝 版本规划

v0.1.0 (当前版本)

  • ✅ 基础指令集支持
  • ✅ 基本调试功能
  • ✅ 虚拟显示器
  • ✅ 键盘输入
  • ✅ 6 个示例程序
  • ✅ 主题切换

v0.2.0 (下个版本)

  • 🚧 字符串指令支持
  • 🚧 条件断点
  • 🚧 执行历史和回退
  • 🚧 代码折叠和格式化
  • 🚧 项目保存/加载

v0.3.0

  • 📅 宏和过程支持
  • 📅 多文件项目
  • 📅 图形模式显示
  • 📅 交互式教程

v1.0.0

  • 📅 完整 8086 指令集
  • 📅 完善的调试功能
  • 📅 PWA 支持
  • 📅 丰富的示例和教程
  • 📅 完整文档

🤝 贡献指南

欢迎贡献!以下是一些可以参与的方式:

  1. 报告 Bug: 在 GitHub Issues 提交问题
  2. 建议功能: 在 GitHub Discussions 讨论新想法
  3. 提交代码:
    • Fork 仓库
    • 创建功能分支
    • 提交 Pull Request
  4. 完善文档: 改进文档和教程
  5. 分享示例: 贡献有趣的示例程序

开发优先级

当前最需要的贡献:

  1. 🔥 字符串指令实现
  2. 🔥 条件断点功能
  3. 🔥 更多示例程序
  4. 🔥 移动端优化
  5. 🔥 英文文档

📞 联系方式


最后更新: 2025年12月1日
维护者: chizukuo


💡 注意: 此 TODO 列表会持续更新。优先级可能根据用户反馈和实际需求调整。