Fig.17-1 80386 Instruction Format

Figure 17-1. 80386 Instruction Format +---------------------------------------------------------------+ | INSTRUCTION | ADDRESS- | OPERAND- | SEGMENT | | PREFIX | SIZE PREFIX | SIZE PREFIX | OVERRIDE | |---------------------------------------------------------------| | 0 OR 1 0 OR 1 0 OR 1 0 OR 1 | |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| | NUMBER OF BYTES | +---------------------------------------------------------------+ +---------------------------------------------------------------+ | OPCODE | MODR/M | SIB | DISPLACEMENT | IMMEDIATE | | | | | | | |---------------------------------------------------------------| | 1 OR 2 0 OR 1 0 OR 1 0,1,2 OR 4 0,1,2 OR 4 | |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| | NUMBER OF BYTES | +---------------------------------------------------------------+

Fig.17-2 ModR/M and SIB Byte Formats

Figure 17-2. ModR/M and SIB Byte Formats MODR/M BYTE 7 6 5 4 3 2 1 0 +------------------------------------+ | MOD | REG/OPCODE | R/M | +------------------------------------+ SIB (SCALE INDEX BASE) BYTE 7 6 5 4 3 2 1 0 +------------------------------------+ | SS | INDEX | BASE | +------------------------------------+

Fig.17-3 Bit Offset for BIT[EAX, 21]

Figure 17-3. Bit Offset for BIT[EAX, 21] 31 21 0 +-----------------------------------------------------------------------+ | | | | +-----------------------------------------------------------------------+ ^ ^ +--------------------BITOFFSET = 21--------------+

Fig.17-4 Memory Bit Indexing

Figure 17-4. Memory Bit Indexing BIT INDEXING (POSITIVE OFFSET) 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +-------------------------------------------------+ | | | | | | +--------------------------------+----------------+ | BITBASE + 1 | BITBASE | BITBASE - 1 | ^ | +--------OFFSET = 13-------+ BIT INDEXING (NEGATIVE OFFSET) 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 +-------------------------------------------------+ | | | | | | +----------------+--------------------------------+ | BITBASE | BITBASE - 1 | BITBASE - 2 | | ^ +-----OFFSET = -11---+