ModR/Mとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > ModR/Mの意味・解説 

ModR/M

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/03 05:08 UTC 版)

ModR/Mバイトは、x86命令セット英語版命令エンコーディングの重要な部分である。

説明

x86のオペコードは通常1バイトだがしかし、2バイトの命令とプリフィックスも存在する。ModR/Mはオペコードに続くバイトで、命令がどのように実行されるかについての追加情報を追加する[1](§2.1)。フォーマットは以下の通りであり:

ビット 7 6 5 4 3 2 1 0
用途 MOD REG R/M

REGにはレジスタの指定が、R/MにはMODの値に応じてレジスタを格納するか、アドレッシングモードの指定が当て嵌まる。 一部の命令はModR/MバイトのREG部分を利用できない。これらの命令の多くは、(1つのオペコードで複数の命令を参照でき、そしてREGフィールドが命令を決定する)このフィールドを使用して「多重化」される(からである)。 オペコードのリストでは、これらはオペコードの後にスラッシュ (/) と数字0~7を続けることによって指定される[1](§3.1.1.1)

64ビット切り替え

ModR/Mバイトは、AMDの64ビット拡張によってオリジナルの命令セットへ導入された変更の中心となる。ロングモード英語版では、最上位4ビットが0100 (10進数の4) であるオペコードは、新しいプリフィックスであるREXプリフィックス英語版とみなされる[2](§1.2.7)。プリフィックスバイトの下位4ビットは、それに続くModR/MバイトのREGおよびR/Mフィールド用の追加ビットを含め、さまざまな目的に使用される。その他の変更点としては、これらの値を3ビットから4ビットに拡張すると、使用可能なプロセッサレジスタの数が8から16に倍増する[2](§1.4)

SIBバイト

SIBバイトは、i386以降のx86アセンブリ英語版のオプションのポストオペコードバイトで、複雑なアドレス指定に使用される。 SIBバイトはModR/Mバイトと同様にフォーマットされ、(scale * index) + base + displacementの形を取り、SCALEには1、2、4、または8が当て嵌まる。BASEとINDEXはそれぞれレジスタをエンコードする[3]。ディスプレイスメントは、最終アドレスに適用されるSIBバイトの後にエンコードされた定数オフセットである[4]REXプリフィックス英語版を使用することにより、必要に応じてSIBバイトがSSEレジスタを使用できるようになる[1]

ビット 7 6 5 4 3 2 1 0
用途 SCALE INDEX BASE

リファレンス

  1. ^ a b c Intel Corporation (2016年9月1日). “Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2A”. 2021年9月13日閲覧。
  2. ^ a b Advanced Micro Devices (2021年3月1日). “AMD64 Architecture Programmer’s Manual Volume 3: General-Purpose and System Instructions”. 2021年9月13日閲覧。
  3. ^ Encoding instructions”. University of Alaska Fairbanks. 28 July 2022閲覧。
  4. ^ 80386 Programmer's Reference Manual -- Section 17.2”. www.scs.stanford.edu. 28 July 2022閲覧。

関連項目




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  ModR/Mのページへのリンク

辞書ショートカット

すべての辞書の索引

ModR/Mのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ModR/Mのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのModR/M (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS