Intel Pentium Dコンピュータで8086アセンブリ言語を実行できますか? 私はアセンブリ言語のプログラミングを学んでいます。これは、約16ビットの8086プロセッサのみについて語っている本からです。 Pentium Dのような最新のプロセッサのアセンブリ言語は異なるのですか?8086アセンブリ言語は最新のCPUで動作しますか?
答えて
はい、それはまだ古いオペコードを実行します。あなたのプログラムは命令パイプラインや分岐予測のような最新のPentium機能を利用しません。ペンティアム用に最適化されたコードだけがこれらの機能を利用することができます。
最新のプロセッサは、32ビットのアセンブリ言語をサポートしていますが、いくつかの違いがあります。 16ビット(8086)のアセンブリ言語を使用するには、DOSプログラムをアセンブルしてリンクする必要があります(DOSエミュレーションをサポートするOS(32ビットWindows XPなど)で実行する必要があります)。
さらに最新のプロセッサは、64ビットのオペコードと64ビットのアドレスをサポートしています。 – SRM
32ビット版であれ64ビット版であれ、それは重要なWindowsの数値版ではありません。はい、一度8086アセンブリ言語が分かれば、32ビットを学ぶことは、これ以上懸念する必要のない制限を知ることの大部分です(そして、64ビットアセンブリ言語は制限を緩和します)。 –
これは私がしていることです。私はコードを書いて、それをMASMを使ってアセンブルし、それをリンクさせ、Windowsの32ビットWindows XPとラップトップを持つデスクトップのコマンドプロンプトでデバッグします。それで、現代のx86マイクロプロセッサでアセンブリ言語プログラミングを学ぶために現代のマイクロプロセッサの新しい命令とレジスタサイズを加えた8086アセンブリ言語を学ぶ必要がありますか? – KawaiKx
はい、その異なる。特に現代のプロセッサは8086のターゲットであるリアルモードの代わりにプロテクトモードで動作します。代わりに、このようなエミュレータをダウンロードすることができます。
これは私がこの質問をしてから学んだことです。アセンブリ言語は常にISA固有です。 x86アセンブリ言語は、x86プロセッサのアセンブリ言語ファミリです。 Intelは1978年にx86 ISAを初めて導入しました。これは16ビットプロセッサ向けのものでした。その後、インテルはより広範なデータバスを備えた新しいプロセッサを開発したので、新しい機能と命令がすべての段階でx86 ISAに追加されました。そう、x86プロセッサの進化で、プログラムに使用されているアセンブリ言語、また拡張され、開発された。私はアセンブリ言語を学んでいるので、8086プロセッサについてのみ語っている本から、より高度なx86プロセッサの新しい機能と新しい命令を知ることはできません。 8086アセンブリ言語のプログラムは、後方互換性のために最新のx86ファミリプロセッサでも動作します。
- 1. MASM(8086)アセンブリ言語の行継続
- 2. アセンブリ言語8086 - 相対量を追加できません
- 3. 8086アセンブリ言語を使用してArduinoと通信する
- 4. 8086アセンブリ言語で文字列の配列を宣言して操作する方法は?
- 5. 多言語ウェブサイト、言語操作で動作しますか?
- 6. アセンブリ言語の逆アセンブリ言語x86
- 7. Petersonのソリューションは、最新のCPUアーキテクチャで正しく動作しますか?
- 8. アセンブリ言語でテキストプログラムを移動する
- 9. インテル8086アセンブリ言語で符号ビットが正数でオンになるのはなぜですか?
- 10. アセンブリ8086プログラム - アセンブルエラー
- 11. アセンブリ言語は危険ですか?
- 12. LC3アセンブリ言語
- 13. アセンブリ言語コンパイラ
- 14. アセンブリ言語
- 15. アセンブリ言語-Addition
- 16. アセンブリ言語 - サブプログラム
- 17. アセンブリ言語コプロセッサ
- 18. アセンブリ言語オプティマイザ
- 19. アセンブリ言語イントロ
- 20. アセンブリ言語のプロジェクトソース
- 21. アセンブリ言語のループ
- 22. アセンブリ言語+レジスタ間の移動値
- 23. アセンブリ言語でのループ
- 24. アセンブリ言語 - sarqはコード内で何をしますか?
- 25. アセンブリ8086 EQU指令
- 26. アセンブリ8086カーソル配置
- 27. Duffのデバイスは他の言語でも動作しますか?
- 28. Mipsアセンブリ言語エラーチェック
- 29. MIPSアセンブリ言語スタックポインタマージソート
- 30. アセンブリ言語:+ vs add
それはまったく間違っています。分岐予測とパイプライン処理の効率を向上させるために最適化することはできますが、古いコードの実行には引き続き使用されます。あなたが使用できないものは、より大きな(32ビット)レジスタ、またはより新しい(MMX/SSE/SSE2 /など)命令セットのようなものです。 –
@Jerry私は修正しました。私はいつも、Pentiumが古い16ビットの8086命令でパイプラインや分岐予測を使用しないと仮定しました - 私はそれが単一のパイプラインだった仮想実行モードを持っていたと思っていましたが、メモリは時々それを行います:P – SRM
@ジェリー:サイズオーバーライドプレフィックスを使用すると、より大きなレジスタとアドレス空間を使用できます。 –