From 6ecc2dfd24fa7e7c2611f0dcd8f6d031d8431b61 Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Sun, 3 Nov 2013 18:31:00 +0000 Subject: [PATCH] [FAST486] BP is certainly not the same register as BX. svn path=/branches/ntvdm/; revision=60851 --- lib/fast486/common.inl | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/fast486/common.inl b/lib/fast486/common.inl index 5ab2f9fe36b..d11fd23dde0 100644 --- a/lib/fast486/common.inl +++ b/lib/fast486/common.inl @@ -550,9 +550,8 @@ Fast486ParseModRegRm(PFAST486_STATE State, switch (RegMem) { case 0: - case 2: { - /* (SS:)[BX + SI] */ + /* [BX + SI] */ ModRegRm->MemoryAddress = State->GeneralRegs[FAST486_REG_EBX].LowWord + State->GeneralRegs[FAST486_REG_ESI].LowWord; @@ -560,15 +559,32 @@ Fast486ParseModRegRm(PFAST486_STATE State, } case 1: - case 3: { - /* (SS:)[BX + DI] */ + /* [BX + DI] */ ModRegRm->MemoryAddress = State->GeneralRegs[FAST486_REG_EBX].LowWord + State->GeneralRegs[FAST486_REG_EDI].LowWord; break; } + case 2: + { + /* SS:[BP + SI] */ + ModRegRm->MemoryAddress = State->GeneralRegs[FAST486_REG_EBP].LowWord + + State->GeneralRegs[FAST486_REG_ESI].LowWord; + + break; + } + + case 3: + { + /* SS:[BP + DI] */ + ModRegRm->MemoryAddress = State->GeneralRegs[FAST486_REG_EBP].LowWord + + State->GeneralRegs[FAST486_REG_EDI].LowWord; + + break; + } + case 4: { /* [SI] */ -- 2.17.1