Hallo all, I've just started to learn assembly and now trying to write a disassembler. My program determines prefixes and opcodes. But when I pass to the operand determination a problem occurs. Let us take as an example opcode 0x09 (OR). [UTL="hqqp://ref.x86asm.net/coder64.html"]Here[/URL] is the list of all x86 opcodes in 64 bit mode. The opcode 0x09 takes as first operand r/m16/32/64. The question is what are the cases for each operand size? I am not sure, but I think that it should depend on the presence of 0x67 prefix. But how the third size appears?? Or, may be I mix something.... Thanks in advance.