05 00 00 00 00
is the machine code for one (longer than necessary) encoding of add eax, 0x0
03 05 00 00 00 00
however, is disassembled as add eax, DWORD PTR ds:0x0
from the Intel assembly manual I see that ADD has both op codes for 03 and 05, but I don't see anything about them both appearing in an instruction. Is this what's happening, or is the 03 some sort of prefix that's indicating to use the immediate as an offset into the ds?