统一汇编语言

时间:2011-04-16 09:37:13

标签: performance assembly bytecode opcode multiplatform

我想知道是否存在某种通用且易于编码的操作码(或汇编)语言,它提供了当今大多数CPU中可用的基本指令集(不是一些奇特的CISC,只有寄存器的计算机,只是常见的一种)。有可能在任何提到的CPU上“编译”,微优化和“解释”吗?

我正在考虑类似MARS MIPS模拟器(相当简单易读的代码),可以制作真正的程序。没有必要的库(如果可能的话,这是件好事),只是为了以统一的方式更快地创建(库或类UNIX工具)。

对不起,如果这是一个愚蠢的问题,我是汇编者的新手。我只是没有发现NASM或UNIX汇编语言既不是非常跨平台也不易于阅读和编码。

4 个答案:

答案 0 :(得分:4)

JVM字节码有点像汇编语言,但没有指针算法。但是,它非常面向对象。从积极的方面来看,它完全是跨平台的。

您可能希望查看LLVM字节码 - 但请记住此警告:http://llvm.org/docs/FAQ.html#can-i-compile-c-or-c-code-to-platform-independent-llvm-bitcode

答案 1 :(得分:4)

第一件事:在大会中写作并不能保证提速。对手头的工作使用正确的算法对速度影响最大。当你需要去装配以挤出最后几滴时,你只能通过使算法适应所讨论的硬件的特定架构来实现这一点。通用HLA(高级汇编程序)几乎违背了在汇编中编写代码的目的。请注意,我并没有敲击Randall Hyde’s HLA,这是一个很棒的产品,我只是说你没有通过编译生成机器代码的方式来编写程序集。大多数C和C ++编译器都有非常好的优化器,并且可以生成优于ASM中几乎任何天真实现的机器代码。

看看你是否可以找到Michael Abrash的这些书(第二手,它们已经绝版):“汇编语言的禅”和“代码优化的禅”。或者看看你是否能在DDJ上找到他的文章。它们将让您深入了解优化,

答案 2 :(得分:2)

相关内容,所以我希望可能有用:

采用一种便携式汇编程序。

操作系统的有趣项目,带有用汇编语言编写的图形用户界面,以及出色的汇编API:

答案 3 :(得分:0)

LLVM IR提供了非常便携的程序集,支持强大的compiler, backing many projects including Clang