CC> I've a conflict of programs/documents.
CC> The intel document says that 0305000 decodes to
CC> add ax,op_mem
CC> Turbo assembler sasy it decodes to
CC> add ax,[di]
CC> I decode it to the following
CC> 0000 0011:0000 0101:0000 0000:0000 0000
CC> 0000 0011 00 000 0101
CC> (add w) (mod) (ax) (ds:di)
CC> |------------|
CC> This is using 16bit addressing with the r/m bits to decode it,
CC> the intel doc says that the ModRM bit 05h says that a 32 bit displacement
CC> follows. This would be using 32 bit addressing decoding of the r/m
CC> bits.
CC> What in the hell tells you to use the 32 bit decoding from 05h?
CC> Which one is in error turbor debugger or intel document?
Neither one. They're just making different assumptions about the
segmentation.
In a Use32 segment,
030500000000 decodes as:
ADD EAX, [00000000h]
In a Use16 segment,
030500000000 decodes as
ADD AX, [DI]
ADD [BX+SI], AL
ADD [BX+SI], AL
((Cloud))
MauveCloud@juno.com
* OLX 2.2 * You tell 'em Cat, That's what you're fur.
--- PCBoard (R) v15.3/M 10
---------------
* Origin: Next time, Dial The Wrong Number! (209) 943-1880 (1:208/205)
|