4

Intel の IA-32 ソフトウェア開発者マニュアルを勉強しています。特に、次のマニュアルを読んでいます: http://www.intel.com/Assets/PDF/manual/253666.pdf。例として、ADD 命令を考えてみましょう。79 ページには、r8 (8 ビット レジスタ) を r/m8 (8 ビット レジスタまたはメモリ位置) に追加できると書かれています。下の数行には、r8 に r/m8 を追加できることも書かれています。問題は、2 つの 8 ビット レジスタを追加する場合、どの命令を使用しているのかということです。ありがとう。

4

2 に答える 2

8

add 命令には複数のバージョンがあります...使用するオペランドに応じて、同じニーモニックを異なるオペコードにエンコードできます。(そして、特定の質問に答えるために:「add r8、r8」命令には、おそらく2つの異なるエンコーディングがあり、同じことを行います)

于 2010-04-19T06:45:01.560 に答える
1

ADD 命令には 9 つの異なるエンコード タイプがあり、次の目的で 2 つのオペコードが予約されています。

Opcode: 00/r = ADD r/m8, r8
Opcode: 02/r = ADD r8, r/m8

「ADD r8, r8」の場合、どちらも何らかの効果があります。

于 2010-04-19T07:22:08.307 に答える