Главная страница
    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.754 c
2-1124303411
rts111
2005-08-17 22:30
2005.09.25
Добавление названия нового окна в меню родительского.


14-1125226580
ArtemESC
2005-08-28 14:56
2005.09.25
Каталог


5-1100689736
Stanislav
2004-11-17 14:08
2005.09.25
Регистрация редактора свойств


1-1125651518
Talant
2005-09-02 12:58
2005.09.25
все ссылки в memo


14-1124939557
тихий вовочка
2005-08-25 07:12
2005.09.25
Вопросы производительности труда





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