Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Вниз

Как запустить ф-цию с параметрами строки в ASM   Найти похожие ветки 

 
NikNet ©   (2005-09-04 08:53) [0]

В общем мне надо без всяких "Var/const/type" а прямо в ф-ций
создать  нужную строку и значение и  запустить например как
запустить MessageBox на ASM к примеру с любой строкой...
В моём случае надо поместить в первый параметр значение
а во второй строку... Эти значение должны входить в ASM
код! То есть надо что бы не было не  каких переменных...

ASM
Call MessageBox
END;


 
begin...end ©   (2005-09-04 11:17) [1]

procedure MyProc;
asm
 PUSH  $0021E9CE
 PUSH  MB_ICONEXCLAMATION
 PUSH  $00
 LEA   EAX, [ESP + 2 * $04]
 PUSH  EAX
 PUSH  $00
 CALL  MessageBox
 ADD   ESP, $04
end.


:-)))


 
Digitman ©   (2005-09-04 13:28) [2]


> То есть надо что бы не было не  каких переменных


чем тебе переменные так насолили ?


 
NikNet ©   (2005-09-04 13:29) [3]

А как в EDI поместить строку?


 
Digitman ©   (2005-09-04 13:32) [4]

никак.

а зачем ?

при stdcall (любая WinAPI-ф-ция ориентирована именно на это соглашение) факт.параметры вызова ф-ции передаются через стек, а не через РОН


 
Digitman ©   (2005-09-04 13:47) [5]

procedure MyProc;
const hdr: string = "Заголовок";
const txt: string = "Любая строка";
asm
PUSH  MB_ICONEXCLAMATION
LEA   EAX, [hdr]
PUSH  [EAX]
LEA   EAX, [txt]
PUSH  [EAX]
PUSH  $00
CALL  MessageBox
end;


 
begin...end ©   (2005-09-04 15:10) [6]

> Digitman ©   (04.09.05 13:47) [5]

> LEA   EAX, [hdr]
> PUSH  [EAX]

Можно проще: PUSH [hdr].


 
begin...end ©   (2005-09-04 15:18) [7]

> Digitman ©   (04.09.05 13:32) [4]

> любая WinAPI-ф-ция ориентирована именно на это соглашение

Есть, по крайней мере, одно иключение -- wsprintf.


 
Digitman ©   (2005-09-05 08:51) [8]


> begin...end ©   (04.09.05 15:10) [6]


> Можно проще


да, можно и проще, но РОН я использовал лишь для наглядной иллюстрации


> Есть, по крайней мере, одно иключение -- wsprintf


сомневаюсь в ее полезности для случая с ObjectPascal.

а в [1] это ты так пошутил, да ? с cdecl-соглашением ?


 
begin...end ©   (2005-09-05 09:08) [9]

> Digitman ©   (05.09.05 08:51) [8]

> а в [1] это ты так пошутил, да ? с cdecl-соглашением ?

Э-э-э... Не понял... Причём там cdecl-соглашение?


 
Digitman ©   (2005-09-05 09:21) [10]

а-а-а ... пардон, я не посмотрел, что ты стек балансируешь последней строчкой



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
2-1124132609
Сергей Никонов
2005-08-15 23:03
2005.09.25
С чего начать?!


14-1125345851
KilkennyCat
2005-08-30 00:04
2005.09.25
30 августа. С днем рождения!


2-1124006656
max_12345
2005-08-14 12:04
2005.09.25
необходимо удалить текст оставить цифры


2-1124269015
kron
2005-08-17 12:56
2005.09.25
dll


3-1123669316
Виталий Панасенко
2005-08-10 14:21
2005.09.25
Документация по FireBird





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский