haverford教育risc架构(hera)汇编语言的解释器

hera-p的Python项目详细描述


hera py

Build StatusCoverage StatusPyPI

一种用于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没有的特性:

    C-Syth*定义宏(更一般地,在HERA程序中嵌入任意C++代码的能力)

hera-py在中小型程序上的运行速度通常比hera-c快,而hera-c在非常大的程序上运行速度更快。

hassem是目前在haverford使用的hera汇编程序。hera py比Hassem有更好的错误消息,允许用户更好地控制输出(例如,使用--stdout标志),并修复了一些Hassem错误

致谢

感谢您Christopher Villalta对本项目早期迭代的宝贵反馈

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java Hibernate@ManyToMany mapping只在一个方向上在数据库中添加记录   java将文件上载到tomcat服务器外部的文件夹   java将摄像头捕获的图像上传到服务器   java如何创建Rest API并为进程添加时间延迟?   springmodulesvalidation0中缺少java注释包。8a源文件   如何在java中打印SOAP头   Spring security中的java自定义消息,包括UserDetailsService实现和异常   java如何使用Htmlunit中的表单数据登录站点   web如何在WildFly上自动运行java文件   java如何从已经使用另一个方法传递的参数的方法中获取返回值?   java我在JFrame上有一个索引越界。setContentPane   java中的循环序列/系列打印   java maven 3 webapp没有要运行的测试吗?   java CORS不允许POST请求   java再次在派生类中的Jackson中添加字段,该字段在基类中被忽略   爪哇坑测试显示仆从由于超时而异常退出   java寻找第10001个素数   java jboss是否更改web应用程序上下文根?