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. 8086アセンブリ言語で文字列の配列を宣言して操作する方法は?
- 2. Petersonのソリューションは、最新のCPUアーキテクチャで正しく動作しますか?
- 3. アセンブリ8086プログラム - アセンブルエラー
- 4. アセンブリ言語は危険ですか?
- 5. LC3アセンブリ言語
- 6. アセンブリ言語
- 7. アセンブリ言語イントロ
- 8. アセンブリ言語コプロセッサ
- 9. Duffのデバイスは他の言語でも動作しますか?
- 10. アセンブリ言語+レジスタ間の移動値
- 11. MIPSアセンブリ言語スタックポインタマージソート
- 12. アセンブリ言語:+ vs add
- 13. sicxeアセンブリ言語プログラミング
- 14. Mipsアセンブリ言語エラーチェック
- 15. アセンブリ言語と文字列操作
- 16. プログラミング言語コンパイラは、最初にアセンブリに変換するか、直接機械語に変換しますか?
- 17. 学習するアセンブリ言語
- 18. アセンブリ言語の問題...新しい行をどのように作成しますか?
- 19. MIPSを第2のアセンブリ言語として学びますか?
- 20. else文はC言語で動作します
- 21. gcovはアセンブリ言語コードのコードカバレッジ解析を行いますか
- 22. CUDAのアセンブリ言語はありますか?
- 23. free()はC言語では動作しません
- 24. アセンブリ言語入門ビデオチュートリアル?
- 25. MPLabアセンブリ言語遅延
- 26. アセンブリ言語とフィボナッチ番号
- 27. MIPSアセンブリ言語:遅延
- 28. アセンブリ言語または機械語で書くと、プログラムは互換プロセッサを搭載したコンピュータで動作しますか?
- 29. アセンブリ言語での配列アクセス
- 30. 私はアセンブリ言語を勉強していますUSB
それはまったく間違っています。分岐予測とパイプライン処理の効率を向上させるために最適化することはできますが、古いコードの実行には引き続き使用されます。あなたが使用できないものは、より大きな(32ビット)レジスタ、またはより新しい(MMX/SSE/SSE2 /など)命令セットのようなものです。 –
@Jerry私は修正しました。私はいつも、Pentiumが古い16ビットの8086命令でパイプラインや分岐予測を使用しないと仮定しました - 私はそれが単一のパイプラインだった仮想実行モードを持っていたと思っていましたが、メモリは時々それを行います:P – SRM
@ジェリー:サイズオーバーライドプレフィックスを使用すると、より大きなレジスタとアドレス空間を使用できます。 –