0
アセンブリ言語からいくつかのアドレッシングモードを学びました。しかし私は、セグメントごとに異なるアドレッシングモードを持っていることがわかります。たとえば、データにPC相対アドレッシングを使用することはできません。何故ですか?コードとデータのアドレッシングモードが異なる理由は?
アセンブリ言語からいくつかのアドレッシングモードを学びました。しかし私は、セグメントごとに異なるアドレッシングモードを持っていることがわかります。たとえば、データにPC相対アドレッシングを使用することはできません。何故ですか?コードとデータのアドレッシングモードが異なる理由は?
完全に正しく実装されたオペレーティングシステムの場合、コードは、追加のモジュールのロードなど、いくつかの高度な機能以外の独自のメモリ空間を操作できないようにする必要があります。そうしないと、実行時に何かにプログラムのデータ空間。しかし、プログラムの必要に応じて操作することができます。オペレーティング・システムの実装では、誤ってコード・スペースを操作する問題を避けるために、コード・スペースとデータ・スペースを明確に分離することがベスト・プラクティスです。
私はこれについて知っています。そのため、.textと.dataが分離しています。私が知りたいのは、異なるアドレス指定モードを使用する理由です。 – JiangFeng
私は詳細を知りません。ハードウェアで使用可能な異なるアドレッシングモードを持ついくつかの異なるメモリ空間があります。異なるスペース、モードの数、およびオペレーティングシステムがこれらをどのように使用するかは、ハードウェアおよびオペレーティングシステムの設計者による任意の決定です。プログラミング言語の実装は、これらのデザイナーの決定に沿って行う必要があります。 –