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