Size: a a a

Ассемблер

2020 December 23

s

s54816 in Ассемблер
Lena Golovach
а в x64 относительно RIP же адресация есть ?
Они и так относительные, не нужно быть ещё больше относительными. Ты хочешь eb fe, оно же jmp $.
источник

LW

Loren White in Ассемблер
s54816
Джампы относительные в x86.
а если jmp rax, тогда тоже относительный будет ?
источник

LG

Lena Golovach in Ассемблер
s54816
Они и так относительные, не нужно быть ещё больше относительными. Ты хочешь eb fe, оно же jmp $.
чет не понял
источник

s

s54816 in Ассемблер
Loren White
а если jmp rax, тогда тоже относительный будет ?
Это индирект, а ему какой-нибудь нужен.
источник

LG

Lena Golovach in Ассемблер
а почему не работает
lea RBX, [RIP];
jmp qword [RBX-7]
?
источник

LG

Lena Golovach in Ассемблер
извините я ламер )
источник

DR

Dima Richev in Ассемблер
Заметно по "школьник!"
источник

s

s54816 in Ассемблер
Lena Golovach
а почему не работает
lea RBX, [RIP];
jmp qword [RBX-7]
?
Этот код читает адрес из памяти по адресу rbx-7, а там не адрес, там код.
источник

LG

Lena Golovach in Ассемблер
ааа точно
источник

LG

Lena Golovach in Ассемблер
lea RBX, [RIP];
sub RBX, 7
jmp RBX
то что надо )
источник

LG

Lena Golovach in Ассемблер
@s54816 а можно пример петли с относительным джампом ?
источник

LG

Lena Golovach in Ассемблер
ну тоесть выше мой пример это оно ?
источник

s

s54816 in Ассемблер
s54816
Они и так относительные, не нужно быть ещё больше относительными. Ты хочешь eb fe, оно же jmp $.
Вот же. Ты можешь и просто написать: xxx: jmp xxx. Относительный джамп делается так: берётся значение ip/eip/rip после декодирования инструкции (то есть фактически адрес следующей инструкции) и к нему прибавляется смещение из инструкции. Никаких абсолютных адресов в инструкции нет, поэтому вне зависимости от того, где расположен код, всё будет работать.
источник

LG

Lena Golovach in Ассемблер
s54816
Вот же. Ты можешь и просто написать: xxx: jmp xxx. Относительный джамп делается так: берётся значение ip/eip/rip после декодирования инструкции (то есть фактически адрес следующей инструкции) и к нему прибавляется смещение из инструкции. Никаких абсолютных адресов в инструкции нет, поэтому вне зависимости от того, где расположен код, всё будет работать.
ясно, спасибо
источник

LG

Lena Golovach in Ассемблер
я просто думал еще как-то можно по другому
источник

LG

Lena Golovach in Ассемблер
ну типа как раньше через call из стека доставали свою позицию в коде
источник

LG

Lena Golovach in Ассемблер
в шеллкодах
источник

s

s54816 in Ассемблер
Lena Golovach
ну типа как раньше через call из стека доставали свою позицию в коде
Это для адресации данных, в 32-битном режиме нельзя относительно eip адресоваться. Или если нужно адрес из кода куда-то передать, колбеком, например.
источник

LG

Lena Golovach in Ассемблер
ясно
источник

LG

Lena Golovach in Ассемблер
s54816
Это для адресации данных, в 32-битном режиме нельзя относительно eip адресоваться. Или если нужно адрес из кода куда-то передать, колбеком, например.
еще вопрос ))
источник