parent
875b6ba897
commit
dc1ef1d5a8
|
@ -90,7 +90,7 @@ case 0x29: { // subtract r32 from r/m32
|
|||
//:: multiply
|
||||
|
||||
:(before "End Initialize Op Names(name)")
|
||||
put(name_0f, "af", "multiply r32 into rm32");
|
||||
put(name_0f, "af", "multiply rm32 into r32");
|
||||
|
||||
:(scenario multiply_r32_into_r32)
|
||||
% Reg[EAX].i = 4;
|
||||
|
@ -99,7 +99,7 @@ put(name_0f, "af", "multiply r32 into rm32");
|
|||
# op ModR/M SIB displacement immediate
|
||||
0f af d8 # subtract EBX into EAX
|
||||
# ModR/M in binary: 11 (direct mode) 011 (src EBX) 000 (dest EAX)
|
||||
+run: multiply EBX into r/m32
|
||||
+run: multiply r/m32 into EBX
|
||||
+run: r/m32 is EAX
|
||||
+run: storing 0x00000008
|
||||
|
||||
|
@ -107,7 +107,7 @@ put(name_0f, "af", "multiply r32 into rm32");
|
|||
case 0xaf: { // multiply r32 into r/m32
|
||||
uint8_t modrm = next();
|
||||
uint8_t arg2 = (modrm>>3)&0x7;
|
||||
trace(90, "run") << "multiply " << rname(arg2) << " into r/m32" << end();
|
||||
trace(90, "run") << "multiply r/m32 into " << rname(arg2) << end();
|
||||
int32_t* arg1 = effective_address(modrm);
|
||||
BINARY_ARITHMETIC_OP(*, Reg[arg2].i, *arg1);
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue