Каков размер каждой ассемблерной инструкции?

Каков размер каждой ассемблерной инструкции? Каждая инструкция занимает сколько байтов? 8 байт? Четыре для кода операции и четыре для аргумента? Что происходит, когда у вас есть один код операции и 2 аргумента, например, в mov? У них фиксированный размер в памяти или они различаются? Имеет ли EIP какое-либо отношение к этому, его значение всегда увеличивается на единицу, будучи полностью независимым от того, какую инструкцию он передает?

Я спрашиваю это, как когда я читалhttp://en.wikibooks.org/wiki/X86_Disassembly/Functions_and_Stack_Frames Я наткнулся на тот факт, что, кажется, инструкция вызова эквивалентна команде push и jmp.

call MYFUNCTION
mov my_var, eax

быть таким же, как

push [eip + 2];
jmp MYFUNCTION;
mov my_var, eax

Когда мы'повторно помещая [eip + 2] в стек, на какое значение мы указываем? На линию прямо рядом с "JMP MYFUNCTION "MOV my_var eax, верно?

ps: MSVC ++ помечает ошибку в первой строке, поскольку говорит, что eip не определен. Работает на eax, esp, ebp и т. Д. Что я делаю не так?

Ответы на вопрос(2)

Ваш ответ на вопрос