3

今日のほとんどのCPUで利用可能な基本的な命令セットを提供するある種のユニバーサルでコーディングしやすいオペコード(またはアセンブリ)言語が存在するのではないかと思います(一部の派手なCISC、レジスター専用コンピューターではなく、一般的なコンピューター)。上記のCPUで「コンパイル」、マイクロ最適化、「解釈」する可能性はありますか?

実際のプログラムを作る可能性のある、MARS MIPSシミュレーター(かなりシンプルで読みやすいコード)のようなものを考えています。ライブラリは必要ありません(ただし、可能であれば素晴らしいことです)。ただ、物事(ライブラリまたはUNIXライクなツール)を均一な方法で高速化するためです。

それがばかげた質問なら申し訳ありませんが、私はアセンブラーに不慣れです。NASMまたはUNIXアセンブリ言語は、極端にクロスプラットフォームでも、読みやすく、コーディングしやすいものでもありません。

4

4 に答える 4

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 に答える
4

まず、アセンブリでの書き込みは速度の向上を保証するものではありません。手元のジョブに正しいアルゴリズムを使用すると、速度に最大の影響があります。最後のいくつかのドロップアウトを絞り出すためにアセンブリに移動する必要があるときまでに、問題のハードウェアの特定のアーキテクチャにアルゴリズムを適合させることによってのみ、実際にそれを行うことができます。一般的なHLA(高水準アセンブラ)は、アセンブリでコードを記述する目的をほとんど無効にします。優れた製品であるRandallHydeの HLAをノックしているわけではないことに注意してください。コンパイラがマシンコードを生成する方法でアセンブリを記述しても、何も得られないと言っているだけです。ほとんどのCおよびC++コンパイラには非常に優れたオプティマイザがあり、ASMのほとんどすべてのナイーブな実装よりも優れたマシンコードを生成できます。

Michael Abrashによるこれらの本(中古、絶版)を見つけることができるかどうかを確認してください:「ZenofAssemblyLanguage」および「ZenofCodeOptimization」。または、DDJで彼の記事を見つけることができるかどうかを見てください。彼らはあなたに誰にも負けない最適化への洞察を与えるでしょう、

于 2011-04-16T10:21:35.630 に答える
2

関連するものなので、役立つかもしれません:

がある

一種のポータブルアセンブラのアプローチで。

アセンブラーで記述されたグラフィカルユーザーインターフェイスと優れたアセンブリAPIを備えたオペレーティングシステムの興味深いプロジェクト:

于 2011-08-30T20:08:03.070 に答える
0

LLVM IRは、強力なコンパイラーに裏打ちされた非常にポータブルなアセンブリを提供し、Clangを含む多くのプロジェクトを支援します

于 2014-02-09T13:45:23.690 に答える