|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.01.2015, 00:04 | #1 |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
jmp на абсолютный адрес
Доброго времени суток.
Нужно прыгнуть по абсолютному адресу. MASM, x64. Такой код работает: Код:
Код:
Единственный способ стать умнее - играть с более умным противником.
|
29.01.2015, 07:54 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
В хелпе:
Цитата:
Длинных на регистрах нет. По крайней мере в х86, в х64 думаю то же самое.
I'm learning to live...
|
|
29.01.2015, 08:26 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
А что значи "не работает"?
Что загружается в реестр RAX? Куда именно уходит jmp? |
29.01.2015, 10:08 | #4 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
всю жизнь была такая инструкция. а эти две это прыжок по адресу из памяти. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
29.01.2015, 10:31 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
29.01.2015, 10:32 | #6 |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
Джампит куда-то не туда. В результате система падает.
В RAX загружается абсолютный адрес, на который нужно прыгнуть. Код:
Единственный способ стать умнее - играть с более умным противником.
|
29.01.2015, 18:33 | #7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Я имел ввиду, что *именно* загружается в RAX - какой адрес.
Судя по всему, адрес не правильный. Что-то с mov rax, AbsAddr не так... |
29.01.2015, 21:21 | #8 |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
Адрес функции, на который нужно перепрыгнуть.
Получается в С-шном коде следующим образом: Код:
Код:
Единственный способ стать умнее - играть с более умным противником.
|
29.01.2015, 21:45 | #9 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Отпечатайте адрес RoutineName и содержимое RAX.
Посмотрите машинный код, который сгенерила инструкция mov RAX, ... Оно отладчиком было бы легче... |
29.01.2015, 23:12 | #10 | |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
Цитата:
Код:
Код:
Код:
Единственный способ стать умнее - играть с более умным противником.
Последний раз редактировалось Sam Gold; 29.01.2015 в 23:18. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
JMP DWORD PTR [PAddress] - как узнать адрес | Enkee | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 03.11.2011 13:14 |
DOS->COM->абсолютный адрес загрузки | Пепел Феникса | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 24.10.2011 13:29 |
команда jmp | 777user777 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 31.07.2011 00:28 |
C++/Абсолютный адрес регистра Ebp | coNsept | Общие вопросы C/C++ | 6 | 29.03.2011 12:56 |
WebBrowser Абсолютный и относительный адрес | nikmay | Общие вопросы Delphi | 1 | 01.10.2009 22:41 |