The encoding of memory operands with the SIB-byte allows a ›none register‹ for index as well as base. So this should be a valid instruction:
03 04 25 10 32 54 76 – add eax, dword [ 0x76543210 ]
The address should be calculated like this: 1·0+0+0x76543210 and is not based on any segment register.
In a flat memory this should not change anything, but is this different from add eax, dword ds:0x76543210
, if ds
is not zero?