3

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

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

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

4

4 回答 4

4

第一件事:用汇编编写并不能保证速度的提高。为手头的工作使用正确的算法对速度的影响最大。当您需要去组装以挤出最后几个辍学时,您只能通过使算法适应相关硬件的特定架构来真正做到这一点。通用 HLA(高级汇编程序)几乎违背了在汇编中编写代码的目的。请注意,我并不是在抨击Randall Hyde 的 HLA,它是一个很棒的产品,我只是说你不会像编译器生成机器代码那样从编写汇编中获得任何好处。大多数 C 和 C++ 编译器都有非常好的优化器,并且可以生成优于 ASM 中几乎任何幼稚实现的机器代码。

看看你能不能找到 Michael Abrash 的这些书(第二手,它们已绝版):“汇编语言之禅”和“代码优化之禅”。或者看看你能不能找到他关于 DDJ 的文章。他们将为您提供首屈一指的优化洞察力,

于 2011-04-16T10:21:35.630 回答
4

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

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

于 2011-04-16T10:04:32.487 回答
2

相关的东西,所以我希望可能有用:

用一种便携式汇编器的方法。

有趣的操作系统项目,带有用汇编程序编写的图形用户界面和强大的汇编 API:

于 2011-08-30T20:08:03.070 回答
0

LLVM IR提供了相当便携的程序集,以强大的编译器为后盾,支持包括 Clang 在内的许多项目

于 2014-02-09T13:45:23.690 回答