Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1275805199
Denisrf
2010-06-06 10:19
2010.08.27
Не получается создать окно.


3-1241686825
Ega23
2009-05-07 13:00
2010.08.27
Импорт данных в MSSQL из MS Excel


15-1264657678
vajo
2010-01-28 08:47
2010.08.27
Телефон по витой паре.


15-1272573005
Юрий
2010-04-30 00:30
2010.08.27
С днем рождения ! 30 апреля 2010 пятница


6-1219050457
Muh
2008-08-18 13:07
2010.08.27
Как определить программно залогинился ли я на каком либо сайте





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский