2018-01-03 烂尾工程: Java实现的汇编语言编译器
在半年前的中文编程的尝试历程小记中简单介绍了这一项目. 由于短期内估计不会继续进行, 而且这个项目好像是至今个人在中文命名实践中的代码量最大的一个项目, 谨在此作一小结. 最新的源码库在program-in-chinese/assembler-in-chinese-experiment.
大致设计草图
以'mov rax 0x1122334455667788'指令示例如下:
当前进度
- 仅支持两个操作数的部分指令, 第二个操作数仅支持立即数
- 第一个操作数可以是寄存器,或者简单的内存寻址,如[0]
- 支持强制类型,如add ax,strict word 5
- 生成空可执行文件(PE), 尚未填入生成的二进制码
源码结构
下面是所有文件, 希望是一目了然? "分析器类"从单行汇编指令字符串分析生成"代码行类", "汇编器类"从"代码行类"生成二进制码. 其他主要是业务数据描述("模型"包)和功用(utils).
假如要重新继续这一项目, 下面是一些想法:
- 考虑使用Antlr4, 用类似antlr/grammars-v4的语法文件辅助生成分析器, 省去手动编写分析器
- 最好有汇编和x64指令背景的开发者
转载于:https://www.cnblogs.com/program-in-chinese/p/10482544.html
2018-01-03 烂尾工程: Java实现的汇编语言编译器相关推荐
- 超级计算机还是超级烂尾?天河一号闲置近1年
2010年,"天河一号"以每秒2570万亿次的运算速度成为世界最快的计算机(资料图片) 今年6月23日,超级计算机世界500强最新排行榜公布,落户于国家超级计算广州中心的" ...
- 2018/01/22 爬虫日记
20171024 ①导入自定义的模块(如类),需要在当前类作导入 类的引用声明,如self.tool = tool.Tool() 20171025 ①正则表达式:两个<><>之 ...
- 国家电网SAP 烂尾悬疑
三年前,国家电网信息化工程出台,SAP以20亿元高价蹊跷中标.三年后,该项目不仅推广不利,更落下"用了很痛苦"的评语.这个国内公司仅用1/3价格就可中标的项目,正陷入"烂 ...
- 《30而已》烂尾,如果这样卖空山茶,顾佳会逆袭
摘要:让内容走在销售前 <30而已>迎来了大结局,很想给编剧寄刀子.我所期待的顾佳通过空山茶逆袭成为上市公司老总,让许幻山下跪求饶的完美ending并没有出现.反而是顾佳卖空山茶很辛苦.看 ...
- 2018.01.21.一周机器学习周记
时间:2018.01.21.一周 主要内容 1.整理前期关于决策树的一个小型实践项目文档(实践进行中) 2.搭建TensorFlow环境(进行中) 3.拓展:实践Python的自动化模块pyautog ...
- 面试题 01.03. URL化 + 重新排列字符串
面试题 01.03. URL化 题目链接:https://leetcode-cn.com/problems/string-to-url-lcci/ URL化.编写一种方法,将字符串中的空格全部替换为% ...
- 01.03. URL化《程序员面试金典》记录
文章目录 01.03. URL化 题解 补充 replace()方法 描述 语法 01.03. URL化 URL化.编写一种方法,将字符串中的空格全部替换为%20.假定该字符串尾部有足够的空间存放新增 ...
- 芯片项目烂尾怎么办?国家发改委回应了!
来源:北京日报客户端 芯片项目烂尾的报道近日引发关注.对此,国家发改委新闻发言人孟玮在今日(20日)上午举行的例行发布会上回应,将会同有关部门强化顶层设计,狠抓产业规划布局,努力维护产业发展秩序. 集 ...
- 假如购买的期房不小心烂尾了,那银行贷款是否可以不还了?
如今房价一路高升,再加上开发商融资难度越来越大,现在很多人都开始打期房的主意.期房不论是对开发商还是对购房者来说都是双赢的,开发商可以以较低的融资成本维持楼盘的开发,提高财务杠杆,而购房者可以较低的价 ...
- 2018年排名Top 100的Java类库——在分析了277,975份源码之后得出的结论
最近,OveOps公布了The Top 100 Java Libraries in 2018 - Based on 277,975 Source Files,Hollis查看了这份榜单,做了翻译和补充 ...
最新文章
- 爬虫之selenium标签页的切换
- python算法书籍-有哪些用 Python 语言讲算法和数据结构的书?
- spoj A Needle in the Haystack(rabin-karp)
- python 傅立叶函数_python 图像的离散傅立叶变换实例
- C基础 redis缓存访问
- js 获取 本周、上周、本月、上月、本季度、上季度的开始结束日期
- PowerDesigner--创建业务流程模型
- BCDboot.exe
- java 中文字体_java安装字体--在Swing设置中文字体(微软雅黑)
- excel文档加密破解,简单操作亲测有效
- “管中窥豹”,MyCAT的基因缺陷
- android wifi热点setting
- 文件或目录损坏且无法读取 解决方法
- leetcode笔记 844比较含退格的字符串 python
- IDA*算法实现的数字拼图游戏
- Wireshark抓包分析三次握手四次挥手
- java适配器模式例子_java适配器模式实例解析
- 如何拿到当月的月头和月尾
- 数字签名算法_DSA
- [MOP]出轨札记【原创】(又名:断翅的蝴蝶)