Тут всё зависит от нужной задачи. Дальше мои теоретические выкладки, т.к. вопрос полностью не исследовал. Если нужно нормальное ускорение передвижения, то нужно искать именно коэффициенты скорости. Например как здесь через поиск по заранее известному названию коэффициентов, либо искать в структуре самому (методом проб и ошибок), как например делал JIeXA (написал об этом в этом сообщении. Если достаточно и дискретного увеличения передвижения, т.е. при каждом шаге ГГ делает просто больше шаг, то можно и через координаты. Для этого нужно: 1. Выйти на разовые инструкции для каждой координаты (что я подразумеваю под разовые - на каждый шаг -> одно срабатывание инструкции.) 2. Дальше можно делать двумя способами: 2.1. Работаем непосредственно с координатой. Возьму твою инструкцию movq [edi+смещение],xmm5 fld dword ptr[edi+смещение] // выгружаем в стек значение координатыfmul dword ptr [mnozitel] // умножаем значение в стеке на множитель, про множитель ниже.fstp dword ptr[edi+смещение]// выгружаем из стека в адрес новое значение координаты.про множитель почитай это моё сообщение (или лучше весь) топик. 2.2. Работаем с разницей в значениях координат между шагом. push eax push ebx // сохраняем регистрыmov eax,dword ptr [edi+смещение] // записываем в него координату.push eax // сохраняем старую координату в стеке movq [edi+смещение],xmm5 // получаем новое значение координатыfsub eax,dword ptr [edi+смещение]// рассчитываем разницу imul ebx,eax,4 // ebx - сюда запишется результат (новый шаг), eax - разница, // 4 - в данном случае множительpop eax // восстанавливаем в eax старую координатуfadd eax,ebx // прибавляем к координате новый шагmov dword ptr [edi+смещение],eax // записываем новую координату по адресуpop ebx // восстанавливаем регистры pop eax Коды могут быть неточные, т.к. без отладки в игре я за них не ручаюсь. Но мысль примерно такая.