我想知道是否存在某种通用且易于编码的操作码(或汇编)语言,它提供了当今大多数CPU中可用的基本指令集(不是一些奇特的CISC,只有寄存器的计算机,只是常见的一种)。有可能在任何提到的CPU上“编译”,微优化和“解释”吗?
我正在考虑类似MARS MIPS模拟器(相当简单易读的代码),可以制作真正的程序。没有必要的库(如果可能的话,这是件好事),只是为了以统一的方式更快地创建(库或类UNIX工具)。
对不起,如果这是一个愚蠢的问题,我是汇编者的新手。我只是没有发现NASM或UNIX汇编语言既不是非常跨平台也不易于阅读和编码。
答案 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)
答案 3 :(得分:0)
LLVM IR提供了非常便携的程序集,支持强大的compiler, backing many projects including Clang