diff options
Diffstat (limited to 'chapter21/docs/encoding-reference.ja.md')
| -rw-r--r-- | chapter21/docs/encoding-reference.ja.md | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/chapter21/docs/encoding-reference.ja.md b/chapter21/docs/encoding-reference.ja.md index 8ccdc728..d04fc469 100644 --- a/chapter21/docs/encoding-reference.ja.md +++ b/chapter21/docs/encoding-reference.ja.md @@ -40,9 +40,6 @@ - [条件フラグ](#条件フラグ-1) 7. [再配置](#再配置) -> 訳注:原文の目次には本文に対応する節がない項目や、別の節を指すリンクがあります。 -> 日本語版の目次は本文の見出しに合わせています。本文の技術的な説明とコード例は原文に沿っています。 - この章では命令エンコーディングを追加します。命令エンコーディングとは、 プロセッサの命令セットアーキテクチャ(ISA)が定義する特定のバイナリ形式で機械命令を表すことです。 @@ -429,7 +426,7 @@ Arm は次の間接参照形式をサポートします。 [ストア](https://docsmirror.github.io/A64/2023-06/strb_imm.html):`str dst, [base + #offset]` -オフセットが定数でなければ……(訳注:原文のこの文は途中で途切れています)。 +オフセットがレジスタの場合は、即値オフセット形式ではなくレジスタオフセット形式を使います。 #### 分岐 @@ -465,7 +462,7 @@ Arm は次の間接参照形式をサポートします。 それ以外の場合は無視されます。 Simple では、REX プレフィックスをビットストリームの先頭に追加するだけです -(SEE の浮動小数点命令を除く。訳注:「SEE」は原文の表記です)。配置は次のとおりです。 +(SSE の浮動小数点命令を除く)。配置は次のとおりです。 | **フィールド** | **長さ** | **説明** | |:---------:|:----------:|---------------------------------------------------------------------------------| @@ -528,12 +525,14 @@ public enum MOD { ##### reg -reg フィールドは3ビットのフィールドで、15種類のレジスタをエンコードできます。 -(訳注:ビット数とレジスタ数について、ここでは原文の記述を保持しています。) +reg フィールドは3ビットで、8個のレジスタから1個を選びます。レジスタを指定する場合、 +REX.R によって4ビットに拡張され、16個のレジスタから1個を選べます。 ##### r/m -rm フィールドは直接または間接のレジスタオペランドを指定し、15種類のレジスタをエンコードできます。 +r/m フィールドは3ビットです。レジスタ直接指定モードでは、REX.B によって拡張され、 +16個のレジスタから1個を選べます。メモリ指定モードでは、アドレッシング形式または +ベースレジスタを選びます。一部の値は SIB バイトや RIP 相対アドレッシングを指定します。 ```java public static int modrm(MOD mod, int reg, int m_r) { @@ -625,7 +624,7 @@ X86-64 は複数の間接アドレッシングモードをサポートしますã #### 浮動小数点数 浮動小数点演算には、XMM レジスタまたはメモリにあるスカラーの単精度浮動小数点値を操作する -`SEE SIMD` 命令を使います(訳注:命令名の表記は原文どおりです)。 +`SSE SIMD` 命令を使います。 *注*:ALU 演算で XMM レジスタを使う場合、エンコーディングは非常に似ていますが、 レジスタ番号から `XMM_OFFSET` を引く必要がある点が異なります。 レジスタを連続した番号で数えているため、XMM レジスタに対応する GPR のペアを得るには、 |
