اتفاقيات الاستدعاء Calling Conventions مع المناهج
#7
و عليكم السلام و رحمة الله وبركاته

إقتباس :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)
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد


الردود في هذا الموضوع
اتفاقيات الاستدعاء Calling Conventions مع المناهج - بواسطة me_delphi - 08-11-2011, 12:09 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم