Главная страница
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.049 c
2-1124276233
Валя
2005-08-17 14:57
2005.09.25
Ну почему мне проще написать ...


14-1125250066
Ксардас
2005-08-28 21:27
2005.09.25
Что это за сетевая атака такая Helkern?


14-1125921433
Иксик
2005-09-05 15:57
2005.09.25
Чего-то тихо...


9-1117037884
Trimp
2005-05-25 20:18
2005.09.25
frustum culling, матрицы MODELVIEW и PROJECTION


2-1123960259
AdmeraL
2005-08-13 23:10
2005.09.25
Tcaption перевести в Char?