Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Внизпередача управления Найти похожие ветки
← →
Delphist2 (2010-05-04 04:06) [0]Как сделать передачу управления из одной произвольной области программы в другую? goto не подходит, т. к. действует в пределах begin ... end.
В одной области я пишу:
push eip
А в другой:
pop edx
jmp edx
Это правильно?
← →
Германн © (2010-05-04 04:16) [1]
> Это правильно?
Это бред.
Бред сивой кобылы в тёмную мартовскою (майскою) ночь.
← →
Delphist2 (2010-05-04 05:28) [2]Ну тогда так:
//одна область
var a:integer;
asm
mov a,eip
end;
...
//другая область
mov edx,a
jmp a
Или надо еще esp сохранять?
← →
RWolf © (2010-05-04 15:44) [3]В правильно спроектированной программе не возникает необходимости в таких передачах управления. Если возникает, нужно пересмотреть архитектуру программы.
← →
Anatoly Podgoretsky © (2010-05-04 16:12) [4]Нафига ты хакерскими методами решаешь данную задачу, зачем ты лезешь в Асм, который ты не понимаешь.
← →
Сергей М. © (2010-05-04 16:42) [5]
> Delphist2 (04.05.10 04:06)
procedure Foo;
begin
end;
..
Foo; // вот тебе та самая передача управления
← →
Delphist2 (2010-05-05 04:06) [6]
> В правильно спроектированной программе не возникает необходимости
> в таких передачах управления.
Мне этот прием интересен сам по себе, без применения к какой-то конкретной программе.
>
> procedure Foo;
> begin
> end;
> ..
> Foo; // вот тебе та самая передача управления
Здесь будет возврат. Т. е. ф-я отработает, и управление вернется откуда ф-я была вызвана. А мне надо без возврата.
Как сохранить cs:eip не в стэк, а в глоб. переменные? Например, код
var a:integer;
asm
mov a,eip
end;
вызывает ошибку undeclared identifier: "eip"
← →
Германн © (2010-05-05 04:16) [7]
> Delphist2 (05.05.10 04:06) [6]
>
>
> > В правильно спроектированной программе не возникает необходимости
> > в таких передачах управления.
>
> Мне этот прием интересен сам по себе
Сам по себе этот приём мало применим.
> Здесь будет возврат. Т. е. ф-я отработает, и управление
> вернется откуда ф-я была вызвана. А мне надо без возврата.
>
>
Объясни, что тебе нужно. Или что тебе интересно.
← →
Германн © (2010-05-05 04:18) [8]Что ломаем на сей раз?
← →
Anatoly Podgoretsky © (2010-05-05 08:50) [9]Говорили же - не лезь в ассемблер.
← →
Anatoly Podgoretsky © (2010-05-05 08:51) [10]
> Объясни, что тебе нужно. Или что тебе интересно.
Ему нужно учиться тривиальному программированию или кнута.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.06 c