I have a question about the following architecture: Intel 64 and IA-32(like Core 2 quad Intel processor)
My question is about the 64-bits instruction format as follows:
if we use REX.W=1, we will have 64 bit operands by default in Intel 64, IA-32e mode. And if we use REX.W=0, the operand size will be 32 bits.
When our operand is 64 bits by default, how each instruction specifies 8, 16 and 32 bits operands? Does it use different opcodes for them? Or it uses a combination of opcode and some operand size override prefixes? Does it use 66H prefix?
How about default 32 bit operands in 64-bits mode(REX.W=0), IA-32e? How we specify 64, 16, 8 bits operands? Only by opcode or a combination of opcode and operand size override prefixes? and in that case what are those operand size override prefixes?