ошибка A2070: неверные операнды команд

ошибка находится в AfterLoop skope в строке «mov [esi], [edi]». как я могу решить эту проблему? ; Функция удаления узла (headptr, nodeToremove)

removeNode proc headPtr = 8 nodeToRemove = headPtr + 4 push ebp mov ebp, esp push esi push edi push ebx mov esi, headPtr[ebp] ; esi = head of list mov edi, [esi] ; edi = second item cmp esi, nodeToRemove[ebp] ; head = nodeToRemove? jne NextNode mov edi, esi ; edi ( = currNode) = head mov esi, [esi] ; new head = head->next jmp AfterLoop NextNode: cmp edi, nodeToRemove[ebp] ; currNode = node to remove? je AfterLoop mov esi, edi ; prev node = currNode mov edi, [edi] ; currNode = currNode->next jmp NextNode AfterLoop: mov [esi], [edi] ; error!!! prev->next = curr->next pop ebx pop edi pop esi pop ebp ret 8 removeNode endp 

mem, mem не является допустимой комбинацией операндов. Используйте регистр как промежуточный, например:

 mov eax,[edi] mov [esi],eax 

Кроме того, если вы можете поменять esi и edi вы можете использовать movsd :

 movsd ; dword [edi] = dword [esi]; esi += 4; edi += 4 

(Примечание: значение += 4 истинно, если флаг направления четкий. В противном случае это будет -= 4 В вашем случае это не имеет значения, так как вы сразу же после этого edi esi и edi ).

По большей части инструкции x86 могут использовать не более одного операнда памяти. Для перемещения памяти-памяти используйте временный регистр:

 mov [reg1], [reg2] # illegal mov tmp, [reg2] # ok mov [reg1], tmp 
Interesting Posts

Асинхронная операция Entity Framework занимает в десять раз больше времени

PDF-XChange Viewer, pdflatex, Windows XP Pro SP3

Запустите программу в пакетном скрипте и дождитесь ее завершения, прежде чем продолжить

Как выполнить команду при каждом изменении файла?

как программно перемещать мышь, щелкнуть, правым кликом и нажатием клавиши и т. д. в winform и wpf?

Как проверить, связано ли событие click – JQuery

Отправить маркер ERC20 с помощью web3

шестнадцатеричная плавающая константа в C

Препроцессор C ++: избегать повторения кода списка переменных-членов

ggplot2 сохранить неиспользованные уровни barplot

Разрешение на чтение и запись для раздела FAT32 в Ubuntu

Почему Graphics.MeasureString () возвращает более высокий, чем ожидалось, номер?

Субдомены для сервера за NAT

Создание экземпляра с использованием имени classа и вызывающего конструктора

Какое сетевое соединение используется при подключении с использованием нескольких интерфейсов

Давайте будем гением компьютера.