Lines 734-739
Link Here
|
734 |
{ |
734 |
{ |
735 |
unsigned offset; |
735 |
unsigned offset; |
736 |
|
736 |
|
|
|
737 |
if (M.x86.mode & SYSMODE_PREFIX_ADDR) { |
738 |
u32* rp = decode_rm_long_register(rm); |
739 |
return (*rp); |
740 |
} |
737 |
switch (rm) { |
741 |
switch (rm) { |
738 |
case 0: |
742 |
case 0: |
739 |
DECODE_PRINTF("[BX+SI]"); |
743 |
DECODE_PRINTF("[BX+SI]"); |
Lines 782-787
Link Here
|
782 |
int rm) |
786 |
int rm) |
783 |
{ |
787 |
{ |
784 |
int displacement = (s8)fetch_byte_imm(); |
788 |
int displacement = (s8)fetch_byte_imm(); |
|
|
789 |
if (M.x86.mode & SYSMODE_PREFIX_ADDR) { |
790 |
u32* rp = decode_rm_long_register(rm); |
791 |
return (*rp + displacement); |
792 |
} |
785 |
switch (rm) { |
793 |
switch (rm) { |
786 |
case 0: |
794 |
case 0: |
787 |
DECODE_PRINTF2("%d[BX+SI]", displacement); |
795 |
DECODE_PRINTF2("%d[BX+SI]", displacement); |
Lines 830-835
Link Here
|
830 |
int rm) |
838 |
int rm) |
831 |
{ |
839 |
{ |
832 |
unsigned displacement = (u16)fetch_word_imm(); |
840 |
unsigned displacement = (u16)fetch_word_imm(); |
|
|
841 |
if (M.x86.mode & SYSMODE_PREFIX_ADDR) { |
842 |
u32* rp = decode_rm_long_register(rm); |
843 |
return (*rp + displacement); |
844 |
} |
833 |
switch (rm) { |
845 |
switch (rm) { |
834 |
case 0: |
846 |
case 0: |
835 |
DECODE_PRINTF2("%04x[BX+SI]", displacement); |
847 |
DECODE_PRINTF2("%04x[BX+SI]", displacement); |