R/m
◄Key to Encodings► ◄Reg► ◄Mod► ◄R/m► ◄Back►
──────────────────────────────────────────────────────────────────────────────
This three-bit field is called "register/memory," and it helps specify
addressing mode. If mod field is 11, r/m specifies the source register
using the reg field codes. Otherwise, r/m has the following meaning:
000 DS:[BX+SI+disp]
001 DS:[BX+DI+disp]
010 SS:[BP+SI+disp]
011 SS:[BP+DI+disp]
100 DS:[SI+disp]
101 DS:[DI+disp]
110 DS:[BP+disp]
111 DS:[BX+disp]
If mod is 00 and r/m is 110, the operand is treated as a direct
memory operand. This means that the operand [BP] is encoded as [BP+0]
rather than having a short-form like other register indirect operands.
Encoding [BX] takes one byte, but encoding [BP] takes two.
-♦-