Что-то никак не могу понять в чем ошибка. Код (ASM): VirtualAlloc ........... mov Buffer, eax mov eax, dword ptr [buffer] ;в ЕАХ попадает адрес на буфер ;mov eax, buffer ;mov eax, dword ptr [eax] ; а в данном случае в ЕАХ - как раз значение из буфера Казалось бы одно и тоже, но в коде приходится извращаться именно вторым способом чтобы получить значение. Что я делаю не так?
mov eax, buffer ты помещаешь в еах адрес переменной buffer вместо ее значения. В нормальном ассемблере конструкция mov buffer,eax нелепость Так что mov dword ptr[buffer],eax mov eax, dword ptr [buffer] и и путаницы не будет.
Действительно, двусмысленная конструкция. Разыменование памяти должно как то маркироваться, это либо скобки, либо задание смещения(offset для указания отсутствия разыменования).
f13nd, > В нормальном ассемблере конструкция mov buffer,eax нелепость Для случая записи такая конструкция допустима, так как нет смысла для записи в константу. Для чтения это не ясная ситуация, загрузка это константы, либо выборка из памяти.