LDS/LES/LFS/LGS/LSS: Fix segment wraparounds in 16-bit address mode.
This commit is contained in:
@@ -1054,6 +1054,13 @@ MEM_LOAD_ADDR_EA_W_OFFSET(x86seg *seg, int offset)
|
||||
addbyte(0x83); /*ADD EAX, offset*/
|
||||
addbyte(0xc0);
|
||||
addbyte(offset);
|
||||
if (!(op_32 & 0x200)) {
|
||||
addbyte(0x25) /* AND EAX, ffffh */
|
||||
addbyte(0xff);
|
||||
addbyte(0xff);
|
||||
addbyte(0x00);
|
||||
addbyte(0x00);
|
||||
}
|
||||
MEM_LOAD_ADDR_EA_W(seg);
|
||||
}
|
||||
static __inline void
|
||||
|
||||
Reference in New Issue
Block a user