![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запустить ф-цию с параметрами строки в ASM [D6]
NikNet © (2005-09-04 08:53:00)В общем мне надо без всяких "Var/const/type" а прямо в ф-ций
создать нужную строку и значение и запустить например как
запустить MessageBox на ASM к примеру с любой строкой...
В моём случае надо поместить в первый параметр значение
а во второй строку... Эти значение должны входить в ASM
код! То есть надо что бы не было не каких переменных...
ASM
Call MessageBox
END;
Digitman (2005-09-05 09:21:00) [1]а-а-а ... пардон, я не посмотрел, что ты стек балансируешь последней строчкой
begin...end (2005-09-05 09:08:00) [2]> Digitman © (05.09.05 08:51) [8]
> а в [1] это ты так пошутил, да ? с cdecl-соглашением ?
Э-э-э... Не понял... Причём там cdecl-соглашение?
Digitman (2005-09-05 08:51:00) [3]
> begin...end © (04.09.05 15:10) [6]
> Можно проще
да, можно и проще, но РОН я использовал лишь для наглядной иллюстрации
> Есть, по крайней мере, одно иключение -- wsprintf
сомневаюсь в ее полезности для случая с ObjectPascal.
а в [1] это ты так пошутил, да ? с cdecl-соглашением ?
begin...end (2005-09-04 15:18:00) [4]> Digitman © (04.09.05 13:32) [4]
> любая WinAPI-ф-ция ориентирована именно на это соглашение
Есть, по крайней мере, одно иключение -- wsprintf.
begin...end (2005-09-04 15:10:00) [5]> Digitman © (04.09.05 13:47) [5]
> LEA EAX, [hdr]
> PUSH [EAX]
Можно проще: PUSH [hdr].
Digitman (2005-09-04 13:47:00) [6]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;
Digitman (2005-09-04 13:32:00) [7]никак.
а зачем ?
при stdcall (любая WinAPI-ф-ция ориентирована именно на это соглашение) факт.параметры вызова ф-ции передаются через стек, а не через РОН
NikNet (2005-09-04 13:29:00) [8]А как в EDI поместить строку?
Digitman (2005-09-04 13:28:00) [9]
> То есть надо что бы не было не каких переменных
чем тебе переменные так насолили ?
begin...end (2005-09-04 11:17:00) [10]
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.
:-)))