Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

передача управления   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1265831068
сало-масло-колбаса
2010-02-10 22:44
2010.08.27
Как отобразить не свызанные записи в таблице


2-1275846857
worldmen
2010-06-06 21:54
2010.08.27
TMediaPlayer воспроизведение используя БД


4-1237892274
Alx2k
2009-03-24 13:57
2010.08.27
Получить оверлейный значок


2-1267000689
AlexAA
2010-02-24 11:38
2010.08.27
Событие "AfterOpen" в TDBGrid


15-1267615251
noob_one
2010-03-03 14:20
2010.08.27
Можно ли готовую dll прикомпилировать к программе?