Fixed disassembling functions to handle 16-bit code segments properly.

This commit is contained in:
Alexandre Julliard 2005-09-27 09:33:42 +00:00
parent 80e023bdea
commit 3f611ee0c9
1 changed files with 15 additions and 3 deletions

View File

@ -151,7 +151,11 @@ void memory_examine(const struct dbg_lvalue *lvalue, int count, char format)
ADDRESS addr;
void *linear;
if (lvalue->type.id == dbg_itype_none) addr = lvalue->addr;
if (lvalue->type.id == dbg_itype_none)
{
be_cpu->build_addr(dbg_curr_thread->handle, &dbg_context,
&addr, lvalue->addr.Segment, lvalue->addr.Offset);
}
else
{
addr.Mode = AddrModeFlat;
@ -637,9 +641,17 @@ void memory_disassemble(const struct dbg_lvalue* xstart,
else
{
if (xstart)
{
if (xstart->type.id == dbg_itype_none)
{
be_cpu->build_addr(dbg_curr_thread->handle, &dbg_context,
&last, xstart->addr.Segment, xstart->addr.Offset);
}
else
{
last.Mode = AddrModeFlat;
last.Offset = types_extract_as_integer(xstart);
last.Offset = types_extract_as_integer( xstart );
}
}
if (xend)
stop = types_extract_as_integer(xend);