Assembly Language Help (alang.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Register/Memory (r/m) Field
                                             Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
     See also: Mode (mod) Field, Scaled Index Mode
 
     The three-bit register/memory (r/m) field specifies the addressing
     mode.
 
     r/m     Addressing mode
     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 11, the r/m field specifies the destination register
     using the same encoding as the reg field.
 
     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; encoding [BP]
     takes two bytes.
                                    -♦-