Нет операнда памяти / памяти для инструкции MOV
.Вы должны использовать реестр для такого использования.Это что-то вроде этого:
void __declspec( naked ) test(void) {
__asm {
MOV EAX, DWORD PTR [ESI+0x77C]
MOV myJohn.oldA, EAX
MOV EAX, myJohn.A
MOV DWORD PTR [ESI+0x77C], EAX
JMP gotoAddressBack
}
}
Кстати, я действительно подозреваю, что вам действительно приходится иметь дело с сегментными регистрами в современных ОС (из-за виртуальной памяти, то есть вы можете использовать прямые адреса).Вы должны проверить свой код после вышеуказанных изменений.