haverford教育risc架构(hera)汇编语言的解释器
hera-p的Python项目详细描述
hera py
一种用于Haverford Educational RISC Architecture(hera)汇编语言的工具包,包括一个解释程序、一个调试器、一个汇编程序和一个反汇编程序。
安装
可以使用pip安装hera py:
$ pip3 install hera-py
用法
安装后,使用hera
命令运行HERA程序:
$ hera main.hera
使用debug
子命令输入交互式调试器:
$ hera debug main.hera
将hera程序汇编成机器代码:
$ hera assemble main.hera
将机器代码反汇编回人类可读的hera语法:
$ hera disassemble main.hera.lcode
也可以在不运行hera程序的情况下对其进行预处理,以查看如何将伪指令和标签解析为hera代码:
$ hera preprocess main.hera
与hera-c和hassem的比较
HERA-C是目前在Haverford使用的HERA翻译它是围绕一组C++宏实现的shell脚本包装器,它将HERA指令扩展为C++代码,然后由G++编译。
hera py在以下方面优于hera-C:
- 包括一个专门构建的HERA调试器
- 简洁准确的错误信息
- 易用性
- 跨平台且易于安装
- 可通过命令行选项配置
- 不创建临时文件
- 命令名比
HERA-C-Run
少六个字母
hera py还支持hera-C没有的几个特性:
- 将寄存器设置为标签值
- 检测堆栈溢出
- 多精度乘法
- 通过固定整数值的相对分支(例如,
BRR(10)
) - 按寄存器值分支(例如,
SET(R1, 20); BR(R1)
) - 检测无效的相对分支
hera-c有一些hera py没有的特性:
hera-py在中小型程序上的运行速度通常比hera-c快,而hera-c在非常大的程序上运行速度更快。
hassem是目前在haverford使用的hera汇编程序。hera py比Hassem有更好的错误消息,允许用户更好地控制输出(例如,使用--stdout
标志),并修复了一些Hassem错误
致谢
感谢您Christopher Villalta对本项目早期迭代的宝贵反馈