Главная страница
    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.46 MB
Время: 0.035 c
6-1117644962
Dok
2005-06-01 20:56
2005.09.25
широковещательный connect


14-1125312326
QwertyKz_
2005-08-29 14:45
2005.09.25
логотипы к программе компьютерного тестирования


14-1124963749
Василий Александрович
2005-08-25 13:55
2005.09.25
Обмен паспорта и дактилоскопия - законно ли это?


1-1125568873
Jax
2005-09-01 14:01
2005.09.25
Поиск в строке


4-1122545484
ingine
2005-07-28 14:11
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский