2010-03-21 3 views
1

Я делаю некоторые ASM код в код C с ассемблерном функции.ASM x86 по сравнению JMP

Моя среда DVL с GCC версии 3.

Привет нужно сделать JMP на относительный адрес, как% EIP + 0x1F.

Как я могу это сделать?

Благодаря

ответ

5

x86 поддерживает короткий прыжок (JMP, опкод EB + 1 байт относительный адрес), который должен делать то, что вы хотите.

В большинстве ассемблеров (включая встроенный asm IIRC gcc) вы можете просто поместить метку, куда вы хотите перейти, и использовать jmp mylabel, и пусть посол выяснит правильный код операции и относительный адрес для перехода.

+1

Я просто попытался это в НКУ, и это делает работу (прыжки с этикетками). Но ты избил меня на пост! –

+0

для сборки gcc inline: как насчет без ярлыков? __asm ​​__ ("jmp short 0x3F"); не кажется, например, wirk. любое решение? – GalDude33

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