27-05-2013, 10:07 AM
السلام عليكم
اضنك وضعت الموضوع في القسم الخطأ ..
ودلفي قامت بمنح المبرمج القدرة على كتابة اسطر ودوال بلغة الاسمبلي من خلال وضع التعليمة : ASM
وننيها بالتليمة : End ... كما هو الحال مع Begin..End ...
اما عن فائدتها فاضن انك يجب ان تعرف ايهم اسرع اكواد الاسمبلي التي تقوم انت بكتابتها او التي يقوم بكتابتاها المترجم الخاص بدلفي ...
لنأخذ مثال عن السرعه مثلأً ...
جرب تنفيذ هذا الكود
وجرب تنفيذ نفس الكود بلغة التجميع :
ستلاحظ ان كود التجميع هو الاسرع ... طبعاً هذا مثال بسيط حداً ... وربما لا يوضح فائدة الاسمبي بشكل كبير .
ابحث بالانترنت ستجد العديد من المقالات والمنتديات التي تتحدث عن الاسمبلي
اضنك وضعت الموضوع في القسم الخطأ ..
إقتباس :ولا ادري كيفية ربطه مع دلفيما هو معروف ان الاسمبلي ( لغة التجميع ) هي اللغة التي تخاطب الكمبيوتر او المعالج بشكل اصح...
ودلفي قامت بمنح المبرمج القدرة على كتابة اسطر ودوال بلغة الاسمبلي من خلال وضع التعليمة : ASM
وننيها بالتليمة : End ... كما هو الحال مع Begin..End ...
اما عن فائدتها فاضن انك يجب ان تعرف ايهم اسرع اكواد الاسمبلي التي تقوم انت بكتابتها او التي يقوم بكتابتاها المترجم الخاص بدلفي ...
لنأخذ مثال عن السرعه مثلأً ...
جرب تنفيذ هذا الكود
PHP كود :
var
Z,I : Integer;
TimerToke : Cardinal;
begin
TimerToke := GetTickCount;
for I := 0 to 900000000 do
Z := ( ((( 1000*(5+20) )*3)*3) -1000);
ShowMessage(IntToStr(Z) + #13#10 + IntToStr(TimerToke-GetTickCount) );
end;
وجرب تنفيذ نفس الكود بلغة التجميع :
PHP كود :
var
Z,I : Integer;
TimerToke : Cardinal;
begin
TimerToke := GetTickCount;
for I := 0 to 900000000 do
begin
asm
MOV EAX,$5
ADD EAX,$14
IMUL EAX,$3E8
IMUL EAX,$3
IMUL EAX,$3
SUB EAX,$3E8
MOV Z,EAX
end;
end;
ShowMessage(IntToStr(Z) + #13#10 + IntToStr(TimerToke-GetTickCount) );
end;
ستلاحظ ان كود التجميع هو الاسرع ... طبعاً هذا مثال بسيط حداً ... وربما لا يوضح فائدة الاسمبي بشكل كبير .
ابحث بالانترنت ستجد العديد من المقالات والمنتديات التي تتحدث عن الاسمبلي

