Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > относительный JMP


Автор: Guest 25.11.2005, 21:27
Нужен относительный безусловный переход типа:

JMP 1
metka1:
...
Т.е., чтобы JMP уходил на metka1 (адрес перехода вычислялся как адрес самой команды + значение).

Как я понимаю JMP - это переход по абсолютному адресу. После компиляции там абсолютные адреса. Использую встроенный ASM в VC++. Есть ли команда относительного безусловного перехода?

Автор: Akina 25.11.2005, 22:10
как раз jmp near - относительный.

Автор: Guest 26.11.2005, 19:39
Вопрос закрыт.
Работает конструкция:

lea EAX, metkabegin
add EAX, buffernewint1
jmp EAX
metkabegin:
jmp metka0
jmp metka1
jmp metka2
...

Автор: Chingachguk 27.11.2005, 07:57
Может, лучше так:

JmpTable:

dd offset Label1
dd offset Label2
dd offset Label3
dd offset Label4
...

mov eax,NumberOfLabel ; 0,1,2,...
jmp dword ptr JmpTable[eax*4]

- ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)