2013-10-07 3 views
0

Это является источником путаницы: MOVL (% EDX),% EAX Это относится значение% EAX в качестве адреса, идет к нему и копирует его содержание в% EAX,Синтаксис разыменования в сборке IA-32() или *?

Имея это в виду, затем смотрим на: jmp * (% edx) Поскольку скобка использовалась ранее (как разыменование в команде mov), то является ли звездочка формой двойного разыменования?

... и как эта инструкция будет работать иначе? -> JMP (% EDX)

... или как насчет JMP *% EDX против JMP% EDX?

+0

Это синоним AT & T, пожалуйста, храните его в тегах таким образом. – Gunner

+0

Ваше первое утверждение .. Я думаю, что это опечатка ... Возможно, вы имели в виду: «Он обрабатывает значения'% edx' в качестве адреса, переходит к нему и копирует его содержимое в '% eax'" – Sam

ответ

0

* указывает на абсолютный скачок, в отличие от отсутствия звездочки, что означает относительный прыжок. См http://sourceware.org/binutils/docs-2.17/as/i386_002dMemory.html#i386_002dMemory

Однако, я не знаю, делает вывод ли ассемблер абсолютного скачка от косвенности даже если * отсутствует или она лает на невозможности косвенного относительного скачка.

 Смежные вопросы

  • Нет связанных вопросов^_^