经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » 汇编语言 » 查看文章
2018-01-03 烂尾工程: Java实现的汇编语言编译器
来源:cnblogs  作者:吴烜  时间:2019/3/7 8:50:41  对本文有异议

在半年前的中文编程的尝试历程小记中简单介绍了这一项目. 由于短期内估计不会继续进行, 而且这个项目好像是至今个人在中文命名实践中的代码量最大的一个项目, 谨在此作一小结. 最新的源码库在program-in-chinese/assembler-in-chinese-experiment.

大致设计草图

2018_01_03_assembler汇编器设计草图

以'mov rax 0x1122334455667788'指令示例如下:
2018_01_03_assembler汇编器设计草图-示例

当前进度

  • 仅支持两个操作数的部分指令, 第二个操作数仅支持立即数
  • 第一个操作数可以是寄存器,或者简单的内存寻址,如[0]
  • 支持强制类型,如add ax,strict word 5
  • 生成空可执行文件(PE), 尚未填入生成的二进制码

源码结构

下面是所有文件, 希望是一目了然? "分析器类"从单行汇编指令字符串分析生成"代码行类", "汇编器类"从"代码行类"生成二进制码. 其他主要是业务数据描述("模型"包)和功用(utils).
2018_01_03_assembler文件

假如要重新继续这一项目, 下面是一些想法:

  • 考虑使用Antlr4, 用类似antlr/grammars-v4的语法文件辅助生成分析器, 省去手动编写分析器
  • 最好有汇编和x64指令背景的开发者

原文链接:http://www.cnblogs.com/program-in-chinese/p/10482544.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号