インテルのアセンブリ言語で書かれたプログラムをPowerPCプロセッサで実行できないのはなぜですか?


-2

アセンブリ言語命令はプロセッサに固有のものです システムで使用されています。例えば、 インテルのアセンブリ言語を実行することはできません PowerPCプロセッサ

私はこれを理解することができません。


これを考慮してください:フランス語で書かれた本はフランス語を理解している人だけが読むことができます。オランダ語しか話さない人は読むことができません。
Hennes

異なるアセンブリ言語、異なる命令、まったく異なるアーキテクチャ
Ramhound

クロスアセンブラのようなものはありませんか?ええと…もちろんあります。
Jamie Hanrahan

@JamieHanrahan - はい、もちろんコンパイラとアセンブラがありますが、あるプロセッサのアーキテクチャで使用されている実際の16進数と他社の互換性のないプロセッサとを比較すると、実際の関数のコードは異なる場合があります。それゆえ、あなたは直接ファイルにコードを書くことができず、それが他のものと全く同じであることを意味すると期待することができます - 非ファミリープロセッサライン。それが、私たちがそれらを「命令セット」と呼ぶ理由です。x86、mmx、mmx2などは、「Intel」プロセッサのための一般に知られているものです、
TG2

私はそれをすべて知っています。問題は、「1つのプロセッサのアーキテクチャで実際に使用される16進数」についてではありません。問題は「インテルのアセンブリ言語で書かれたプログラム」です。そのため、インテルのアセンブリ言語で書かれたプログラムは、インテルのプロセッサ上でも動作しません。組み立てる必要があります。そしてクロスアセンブラがあります。 PowerPCマシンコードをIntelアセンブリ言語から生成することは完全に可能です(ただし、Intelのセグメンテーションの実装のような特定の詳細は、一方から他方へ直接マッピングされません)。 「最良の答え」は、この区別を明確にするはずです。
Jamie Hanrahan

回答:


1

アーキテクチャ(プロセッサの論理的原理によって決まる物理的構成)が異なるためです。

x86とPowerPCはどちらも同じことを実行しています。計算装置でコードを処理する汎用中央処理装置ですが、そのようなシステムがどのように機能するかについて異なるアイデアを使用して構築されています。 。


1
あまりにも漠然としているので 特定の命令セット プロセッサは、その方法、順序、そして期待される結果のために実行されるように設計されていました。数学関数としての「乗算」は、行為を実行するためのあらゆる方法で同じ結果になるはずであるということに誰もが同意することができます。ただし、IntelプロセッサはPowerPCプロセッサとは異なる方法で機能し、単に関数名を記述しても、同じ基本16進コードがプロセッサのブランド、タイプ、またはファミリによって異なるという意味ではありません。
TG2

命令セットとアーキテクチャは同じコインの両面です、そして、それらが両方とも理由であると言うのが最善であると思います。それぞれが相手に情報を伝え、どちらも最初にこれら2つの類似しているが異なるプロセッサを設計した人々とチームの仮定と知識および長所と短所によって決定されます。
music2myear

- 「命令セットとアーキテクチャは同じコインの両面です」 - 常に正しいとは限りません。プロセッサブランドのIntelを見てください。 AMD。彼らは長期的なスパッツを持っています、 両方 x86命令セットを実装しますが、プロセッサのアーキテクチャは大きく異なります。 AMDがMMXやその他の拡張機能を追加したときでも、AMDチップがIntelが最初に作成した命令セットから同じ結果を得ることができる限り、それらは同じIntelプロセッサ参照アーキテクチャを使用する必要はありません。
TG2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.