首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有ASM编译器吗?

有ASM编译器吗?
EN

Stack Overflow用户
提问于 2010-12-09 03:37:36
回答 4查看 692关注 0票数 1

我知道ASM通常在汇编程序中运行,结果是或多或少地一对一地映射到最终的二进制文件,但这不是我所想的。

是否有人将ASM (或对象文件)作为一种已编写好的语言来处理,从而对其进行全面的优化?虽然这样的工具在其自身中可能并不特别有用,但它可以执行类似于来自封闭源静态库的函数内联之类的操作。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-09 04:04:28

虽然我同意旅行男孩的回答的观点,即任何这样的“编译后的程序集”语言都不再是程序集,但我必须指出,有一些‘重新编译器’,以及其源语言是机器语言(甚至不是程序集)的JIT。

这些程序需要一堆可执行代码,通常已经加载并准备执行,并对其进行转换,识别各种不同的构造,并替换为不同的版本,这些版本可以更好、更快、更安全或只是不同。

qemu就是一个例子。它的原始形式是一个CPU仿真器,它通过将给定的CPU二进制文件重新编译成不同的CPU执行程序(二进制翻译)来工作。但是,当两个CPU都相同时,它也可以工作,在这种情况下,转换允许特权代码在VM环境中通过“突破”到硬件仿真器来执行。

一个非常有趣的例子是HP (旧Ars Technica文章),一种通过重新编译HPPA-8000二进制文件实现意外加速的研究软件。

票数 2
EN

Stack Overflow用户

发布于 2010-12-09 03:44:51

将ASM和机器代码看作表示相同信息(指令)的两种不同形式。编译器的输出是机器代码。ASM已经(仅以人类可读的形式编写),所以编译器不会有太多的工作要做。

汇编语言有一些工具可以让您定义宏或为您注册分配,但是任何更高级的工具都将被视为编译器,其输入不再是汇编语言。

票数 3
EN

Stack Overflow用户

发布于 2010-12-09 03:42:30

我相信汇编语言艺术就是你想要的:http://homepage.mac.com/randyhyde/webster.cs.ucr.edu/index.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4394609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档