08-11-2011, 12:09 PM
و عليكم السلام و رحمة الله وبركاته
اغلب دوال API مكتوبة بلغة C وتعتمد على هدا النوع من Calling ولهدا يتم دفع البارمترات في المكدس بشكل معكوس
و لنزيد الأمر أكثر وضوحا هدا مثال لدالة يعرفها الجميع MessageBoxA
Delphi+ASM
أنظر كيف تم دفع البارمترات البارمتر الأول مقبض النافدة هو آخر ماتم دفعه للمكدس (push 0 //handle)
إقتباس :stdcall، من اليمين إلى اليسار، المنهج نفسه، المكدس
اغلب دوال API مكتوبة بلغة C وتعتمد على هدا النوع من Calling ولهدا يتم دفع البارمترات في المكدس بشكل معكوس
و لنزيد الأمر أكثر وضوحا هدا مثال لدالة يعرفها الجميع MessageBoxA
Delphi+ASM
PHP كود :
procedure TForm1.FormCreate(Sender: TObject);
var Cap, Txt: string;
begin
Txt := 'Calling Conventions';
Cap := 'SdtCall';
asm
push 64 //uType ->Style
push Txt //Title
push cap //Text
push 0 //handle
call MessageBoxA
end;
end;
أنظر كيف تم دفع البارمترات البارمتر الأول مقبض النافدة هو آخر ماتم دفعه للمكدس (push 0 //handle)
لا اله الا أنت سبحانك اني كنت من الضالمين

