Перейти к содержанию

FHell

Стажёры
  • Публикаций

    3
  • Зарегистрирован

  • Посещение

Репутация

0 Навыки не прокачены

Информация о FHell

  • Звание
    Гость
  1. Спасибо за ответы, пояснения и предоставленные аналогии) Всё понял, закрепил, усвоил.
  2. Если левый операнд edi - это прямая регистровая адресация, то [edi] - это косвенно-регистровая адресация. Rtfm это, безусловно, хороший совет. И я читал про команды ассемблера. Но я просто не понимаю некоторые описанные в ней моменты Вот например вырезка с av-assembler: По всей видимости, я упускаю какой-то важный момент. Если я думаю, что операция mov [edi], [edi+4] должна работать. Буду признателен, если вы меня "тыкните носом". P.S. если и [edi], и [edi+4] это области памяти MEM, то почему я не могу сделать mov MEM, MEM.
  3. Здравствуйте. Начну с примера fstp dword ptr [edi] // По адресу [edi] лежит, скажем, current_float // Рядышком, в [edi+4] лежит maximum_float // Задача записать maximum_float вместо current_float // Как я вижу решение: fstp dword ptr [edi] mov [edi], [edi+4] // Конечно, это не работает и моя проблема заключается в том, что я не понимаю почему данная запись не верна. // Workaround1: fstp dword ptr [edi] push eax mov eax, [edi+4] mov [edi], eax pop eax // Workaroud2: fstp dword ptr [edi] fld dword ptr [edi+4] fstp dword ptr [edi] Собственно вопрос, какое решение является лучшим и почему запись вида "mov [edi], [edi+4]" не верна.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.