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

Вниз

Как запустить ф-цию с параметрами строки в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
14-1125169371
Lamer@fools.ua
2005-08-27 23:02
2005.09.25
Угадай мелодию


3-1123991145
Zaero
2005-08-14 07:45
2005.09.25
Как программно получить список алиасов и создать новый?


6-1117640758
Flame
2005-06-01 19:45
2005.09.25
idhttp


14-1125477040
ANB
2005-08-31 12:30
2005.09.25
Поставили новый мониторчик !


4-1122801708
Pasha L
2005-07-31 13:21
2005.09.25
Как получить список запущенных приложений