No,default bit deosn't mean that.
always means a double word (32 bits).
Gigasoft is right. The real meaning of default bit is how does a processor encode and decode a instruction.
For example. binaries
may have different meaning when default bit is not same.
if default bit equals 0, the code above means
; Else defualt bit equals 1, it means
. A prefix (0x66 or 0x67) can reverse the default behavior(specified by default bit). I have a table that is copied from intel i386 manual.
Code: Select all
Segment Default D = ... 0 0 0 0 1 1 1 1
Operand-Size Prefix 66H N N Y Y N N Y Y
Address-Size Prefix 67H N Y N Y N Y N Y
Effective Operand Size 16 16 32 32 32 32 16 16
Effective Address Size 16 32 16 32 32 16 32 16
Y = Yes, this instruction prefix is present
N = No, this instruction prefix is not present
Note for beginner: `eax' is 32 bits operand; and `word ptr [eax]' is a 16 bits operand, but has 32 bits address size.
If your codes are in 32 bits mode(default bit equals 1): You hardly use 16 bits address size, so you almost don't use 0x67 prefix;But you should ofen access data which size is 16 bits, and in this case, you should use 0x66 prefix.