الازعـــ المشاغب ـــر
افتراضي  مقدمة في لغة الأسمبلي 613623
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا افتراضي  مقدمة في لغة الأسمبلي 829894
ادارة المنتدي افتراضي  مقدمة في لغة الأسمبلي 103798
الازعـــ المشاغب ـــر
افتراضي  مقدمة في لغة الأسمبلي 613623
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا افتراضي  مقدمة في لغة الأسمبلي 829894
ادارة المنتدي افتراضي  مقدمة في لغة الأسمبلي 103798
الازعـــ المشاغب ـــر
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

الازعـــ المشاغب ـــر

خلقني الله وابدع في تكويني وبث روح التحدي في شراييني انا الموقع على حبل مشنقتي يكفيني فخرا باني فلسطيني
 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول
بحـث
 
 

نتائج البحث
 
Rechercher بحث متقدم
المواضيع الأخيرة
» لن ارحل يوما عن قلبك
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالسبت فبراير 05, 2011 2:54 pm من طرف الدلوعة المشاغبة

» في لحظات قد
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالأربعاء يناير 05, 2011 8:42 pm من طرف الدلوعة المشاغبة

» حب بلا حدود
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالإثنين نوفمبر 22, 2010 1:09 am من طرف الدلوعة المشاغبة

» منور يا البرنس منتدانا الغالي حياك الله
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالسبت نوفمبر 13, 2010 1:43 am من طرف العزوني

» فيديو لكاظم الساهر ها حبيبي
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالأربعاء نوفمبر 10, 2010 12:26 am من طرف الدلوعة المشاغبة

» مقدرش انساك
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالأربعاء نوفمبر 03, 2010 12:31 pm من طرف عقرب القدس

» عم بحلمك جاي
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالأربعاء نوفمبر 03, 2010 11:20 am من طرف عقرب القدس

» اجمل انسانه
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالأربعاء نوفمبر 03, 2010 11:17 am من طرف عقرب القدس

» اخفت سرها في داخلها لتفرح اهلها,..
افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالخميس سبتمبر 23, 2010 10:58 am من طرف الدلوعة المشاغبة

ازرار التصفُّح
 البوابة
 الصفحة الرئيسية
 قائمة الاعضاء
 البيانات الشخصية
 س .و .ج
 ابحـث
منتدى
التبادل الاعلاني
احداث منتدى مجاني
مايو 2024
الأحدالإثنينالثلاثاءالأربعاءالخميسالجمعةالسبت
   1234
567891011
12131415161718
19202122232425
262728293031 
اليوميةاليومية

 

 افتراضي مقدمة في لغة الأسمبلي

اذهب الى الأسفل 
كاتب الموضوعرسالة
عامل طنة و رنة
Admin
عامل طنة و رنة


السرطان الحصان
عدد المساهمات : 169
السٌّمعَة : 4
تاريخ التسجيل : 17/09/2009
العمر : 33
الموقع : موسوعة البرامج

افتراضي  مقدمة في لغة الأسمبلي Empty
مُساهمةموضوع: افتراضي مقدمة في لغة الأسمبلي   افتراضي  مقدمة في لغة الأسمبلي I_icon_minitimeالجمعة أكتوبر 16, 2009 1:22 am

بسم الله الرحمن الرحيم ..

السلام عليكم ورحمة الله وبركاتة أخواني أخواتي في منتدى الصاعقة أحيكم وبعد التحيه :

كأول مشاركة لي أتمنى أن اقد لكم مقدمة ولو بسيطة في للغة الاسمبلي

حيث سوف اضع مشاركات بحسب تخصوصي ((علوم الحاسب )) وحيث مع المعلوم أنه لايولد

الانسان عالما وأنما بالاطلاع والمعرفة حيث مستند على موضوعي هذا على بعض الكتب

نبدأ :

لمحة عن الحاسب

یُعرَّف الحاسب الرقمي بأنھ نظام إلكتروني لمعالجة المعطیات، و یتألف من قسمین أساسیین:

. SOFTWARE القسم الأول : البرمجیات

HARDWARE القسم الثاني : الكیان الصلب

و یقسم الكیان الصلب إلى أقسام رئیسیة ھي :
1)وحدة الدخل ويتم خلالها : ادخال المعطيات
الرقمیة.
2) وحدة الخرج: تتم من خلالھا إظھار النتائج بعد معالجة المعطیات.
3) وحدة المعالجة المركزیة: ھي المسؤولة عن العملیات الحسابیة و المنطقیة و معالجة البیانات.
4) وحدة الذاكرة: تخزن البرامج و المعطیات.





البنیة الداخلیة للمعالج 8086



يتالف المعالج 8086 من وحدتين منفصلتين :

1) وحدة ملائمة الممرات(Execution Unit)و سنرمز لھا بالرمز(EU)

2)وحدة التنفیذ(Bus interface Unit)سنرمز لھا بالرمز :BIU

ماھي الأسمبلي :
في قديم الزمان أيام بدايات الكمبیوتر كانت برمجة الكمبیوتر تتم بواسطة لغة الأله
لغة الآله ھي اللغه التي تفھمھا الآله مباشرة ) ML أختصاراً Machine Language
دو ن الحاجة الى تفسیر وھي تخزن بصورة ثنائبة [ تركیبة من الأصفار والوحايد] في
الذاكرة على شكل تعلیمات ووسائط تأخذ كل واحد منھا عادة مقدار ٨بت=ا بايت )
وكان ھذا النوع من البرمجة صعب جداً عندھا طور المبرمجون أو ل لغة برمجة وھذه
اللغه فكرتھا بسیطة جداً حیث أنه بدل أ ن تكتب رموز الآله يتم كتابة كلمات مختصره
ثم ببرنامج بسیط يتم تحويل ھذه ( MOV,ADD,CMP ) تدل على نوع العملیه مثال
الشفرة الى لغة الآله بأستخدام تخطیط واحد-الى-واحد أ ي أ ن كل سطر أو عبارة في
الأسمبلي تحول الى تعلیمة واحدة مقابله في لغة الآله (مثال بدل كتابة
٥ ) يعرف البرنامج الذي يقوم بعملیة التحويل mov al, ٠١١٠٠٠٠٠٠٠٠٠١٠١ يتم كتابة
علماً بأن ھناك عدة أنواع من الأسمبلر كل نوع يختص ، Assembler بالأسمبلر
بتقنیة معینة وبعائلة معینه من المعالجات


تعريف لغة الأسمبلي
الأسمبلي ھي لغة برمجة تتكون من سلسلة من التعلیمات المتتابعة كل تعلیمة فیھا تحول الى تعلیمةمقابلة بلغة الآله .

تعريف الأسمبلر
الأسمبلر ھو برنامج يقوم بتحويل التعلیمات المكتوبة بلأسمبلي الى لغة الآله



لماذا أريد أستخدام الأسمبلي :
بتعلمك لغة الأسمبلي فأنك تكشف النقاب عن الأسرار المختفیه وراء الكمبیوتر وتصبح
قادراً على الفھم تماماً كیف يعمل المعالج وكیف يعمل البرنامج وبذلك تزيد خبرتك
كمبرمج وبالطبع فأن الأسمبلي أقوى من اللغات العالیة المستوى في التعامل مع
العتاد وتعطیك مرونة عالیة وقدرة وصول الى أشیاء لم تكن تستطیع الوصول الیھا من
قبل ، كذلك ھناك نوعیات من البرامج لايمكن الا برمجتھا بالأسمبلي مثل
الدرايفات(سواقات) الأجھزه ، كذلك فأن الأسمبلي يعطیط برامج سريعة جداً ، وبالطبع
فأن بناء برنامج متطور بالأسمبلي أشبه بحفر حفرة بواسطة الملعقه فالبرغم أنك تحفر
الا أ ن ك أنت اجی تك قلی له ولكن من المحبذ جداً برمجة بعض الدولا و الأح ز اء من البر امج
بالأسمبلي وبقیة البرنامج بواسطة لغة عالیة المستوى مثل السي++.

العلاقة بین الأسمبلي واللغات الأخرى :
Low-Level تعتبر كل من لغة الآله و الأسمبلي لغتین منخفضتي المستوى
لأنھا تكتب تعلیمه تعلیمه ( بعض الناس يعتبر لغة السي لغة LLL أختصاراً Language
منخفضة المستوى ، وھذا الكلام أرجح الى الخطأ منه الى الصوا ب ) بینما تعتبر باقي
وفي ھذه اللغات تختفي تقنیة تخطیط HLL أختصاراً High-Level Language اللغات
واحد- الى-واحد وتفسر التعلیمة الواحدة الى عدد كبیر من تعیلمات لغة الآله



تطبیقات لغة الأسمبلي :
تتطلب كتابة البرامج بلغة الأسمبلي معرفة بالعتاد وعناية خاصة مع الأھتمام بأد ق
وأقل التفاصیل ، في أيام البرمجة القديمة كان المبرمجون يكتبون برامجھم بلغة
الأسمبلي لأن ذاكرة الرام وقتھا كانت صغیرة (أقل من ٦٤ كیلوبايت) وھم بحاجة الى
برامج أصغر وأسرع خصوصاً أ ن معالجتھم أيضاً كانت بطیئة ، مع تطور الحاسوب وتوسع
سعة ذاكرة الرام وزيادة سرعته أصبحت البرامج أكثر طولاً وتعقیداً ، ھذا التعقید أدى
مثل السي والكوبول والبیسك HLL الى أستخدام اللغات البرمجیة عالیة المستوى
والباسكال والفورترن ، مرة أخرى تطور الحاسوب فأدى الى أستخدام اللغات العلیا
مثل السي++ والجافا والتي مكنت من كتابة برامج قوامھا آلاف OOP الموجھة الھدف
الأسطر والتعلیمات المعقده والمتداخله .
من الصعب أ ن تلاقي برامج كبیرة مكتوبة كاملة بلغة الأسمبلي لأن كتابتھا صعب
والأھم من ذلك تطويرھا وصیانتھا أصعب بكثیر ، بدل ذلك يقوم المبرمجین ببرمجة
مقاطع مبرمجة برمجة مثلى بلغة الأسمبلي لأستخدمھا في تنفیذ أسرع أو الوصول
الى العتاد عن طريقھا وباقي البرنامج بواسطة لغة عالیة المستوى .
يفض المبرمجین لغة السي++ كلغة قیاسیة للبرمجة بلغة علیا لأن لھا قدرة عالیة
وقوية جداً وموجھة الھدف مع القدرة على كتابة مقاطع السي فیھا وھي لغة أقل
أنخفاضاً وأكثر مرونة مع أستخدام الأسمبلي كعنصر مھم في الوصول الى العتاد
وبرمجة الجزئیات المحتاجة للسرعة .

لا يستخدم المبرمجون شفرة الأسمبلي وسط شفرة لغة عالیة المستوى عادة وأنما
يستخدمونھا عن طريق واجه على شكل دالة أو كائن وتحتوي ھذه الدالة أو ھذا الكائن
على شفرة الأسمبلي المطلوبة ، وقد تستخدم روتیناً فرعیاً أو دالة في لغة عالیة
المستوى وأنت لاتعلم بأنك باستدعاء ھذه الدالة أو الروتین الفرعي قد أستدعیت
شفرة مكتوبة بلغة الأسمبلي .
لغة الآله :
لغة الآله كما ذكرنا سابقاً ھي اللغة التي تسطیع الآله أو المعالج التعامل معھا مباشرة
٨٦ كل معالج يحتوي يستطیع تنفیذ تعلیمات المعالج الذي قبله ويملك X ، في العائلة
مجموعة تعلیمات موسعة وأ ضافیة لا تستطیع المعالجات التي قبله تنفیذھا وأما
المعالج الذي يأتي بعد ھذا المعالج فأنه يدعم التعلیمات الموسعة للمعالج الذي قبله
بینما يحتوي ھو أيضاً على تعلیمات جديدة وموسعة ، بأختصار اذا صممت برنامج
لمعالح ما فأن المعالجات ماقبل ھذا المعالح لن تستطیع تشغیله بینما المعالج نفسة
والمعالجات التي بعده (من نفس العائلة) تستطیع تشغیل البرنامج .
٨٦ أبتداء من المعالج ٨٠٨٦ وصولاً X لفد حافظت شركة أنتل على التوافقیة في العائلة
٨٠٨٨٦ ولكن الحفاظ على التوافقیة يفرض قیود على تصمیم المعالج = الى بانتنیوم ٤
٨٦ عند X وأستخدام تقنیات قديمة ، ومؤخراً قرر ت شركة أنتل ايقاف عائلة المعالح
٨٦ ) مبني على تقنیة X بانتنیوم ٤ وقامت بأنشاء معالج جديد (غیر متوافق مع العائلة
لا ٦٤ بت وھو المعالج اتانیوم الجديد .
مثال على لغة الآله :
التعلیمیة ١٠١١٠٠٠٠٠٠٠٠٠١٠١ ھي تعلیمة بلغة الآله ومعناھا أنقل الرقم ٥ الى
٥ لا ٨ بت الأولى من التعلیمة تشكل mov ah, يقابلھا بلغة الأسمبلي ah المسجل
وھي تعني نقل قیمة بطول ٨ بت الى operation code=OP-code شفرة التعلیمة
لاجزء الثاني من لا ١٦ تب لا ٨بت الأخرى تشكل الرقم ٥ ثنائیاً ، AL المسجل
كیان الحاسوب الصلب :
والمعالج Mother Board يتألف الحاسوب بشكل أساسي من اللوحة الأم
وذاكرة الوصل Memory ROM=Read-Only وذاكرة القرأة- فقط Microprocessor
Supply Power ووحدة التغذية RAM=Random-Access Memory العشوائي=الرام
Expansion Slots والمنافذ التوسعیة
المعالج :
يمثل المعالج عقل الحاسوب وھي الوحدة المسؤله عن القیام بأدارة الحاسوب والقیام
بالعملیات الرياضیة والمنطقیة ونحن ھنا كما أوضحت ندرس معالجات أنتل من العائلة
٨٦ لأنھا العائلة الأشھر والأكثر أستخداماً بین الناس . X
: Execution Unit And Bus Interface Unit وحدة التنفیذ ووحدة ملاءمة الممر
ومھمتھا EU أختصاراً Execution Unit يتألف المعالج من وحدتین ھما وحدة التنفیذ
ومھمتھا نقل BIU أختصاراً Bus Interface Unit تنفیذ التعلیمات ،ووحدة ملاءمة الممر
البیانات والمعطیات الى وحدة التنفیذ . تحتوي وحدة التنفیذ على وحدة الحساب
Control Unit ووحدة التحكم ALU أختصاراً Arithmetic And Logic Unit والمنطق
ومجموعة من المسجلات. تتألف وحدة ملائمة الممر من وحدة التحكم CU أختصاراً
ورتل=كیو Segment Registers ومسجلات المقاطع Unit Bus Control بالممر
الرتل أو الكیو ھو نوع من أدارة الذاكرة تكون فیه ) Instruction Queue التعلیمات
وتقوم وحدة ملاءمة الممر .( FIFO=First In First Out المعلومة الداخلة أولا خارجة أولاًً
بعملیات التحكم بالممر ونقل المعطیات بین كل من وحدة التنفیذ والذاكرة وأجھزة
الأدخال والأخراج الخارجیة، كما تقوم مسجلات المقاطع بعملیة التحكم في عنونة
الذاكرة . تضع وحدة ملاءمة الممر تضع التعلیمات في رتلھا المخصص لھا في وحدة
التنفیذ بعد أ ن تقوم بجلبھا من الذاكرة . يخصص رتل التعلیمات لوضع التعلیمات فیه بعد
جلبھا من الذاكرة بواسطة وحدة ملاءمة الممر ، ولذلك يوجد دائماً رتل من التعلیمات
جاھزه لتنفیذھا من قبل وحدة التنفیذ . تعمل وحدة التنفیذ ووحدة ملاءمة الممر على
التواز ي (في نفس الوقت) ، بینما تحتقظ وحدة ملاءمة الممر بخطوة نحو الأمام، فعندما
تقوم وحدة التنفیذ بتنفیذ تعلیمة ما ، تعمل وحدة ملاءمة الممر أما على جلب تعلیمة
من الذاكرة ووضعھا في رتل التعلیمات لكي تنتظر دورھا في التنفیذ ، أو على جلب
معطیات من الذاكرة أو أحد أجھزة الأدخال أو الأخراج . وخلافاً للطريقة التسلسلیة في
execution التنفیذ fetching المعالجة فأن ھذه العملیة تحقق حدو ث عملیتي الجلب
في وقت واحد الأمر الذي يزيد بدورة من سرعة المعالج .
وحدة

الأسكي كود
يتم في الحاسوب وبقیة توحید أستخدام الرموز أستخدام شفرة الآسكي كود (حالیاً
وھي تسمح بتعدد اللغات في مستند واحد حیث unicode عيمل على تبني شفرة لا
ھي أختصار ل : ASCII يتم تمثیل كل حرف بأستخدام كلمة واحده= ٢بايت) كلمة
Interchange Information Code For Standard American National
ويتم أستخدام ھذا الكود الموحد لتسھیل تناقل البیانات ويمثل كل رمز فیه بعدد ثنائي
بطول ١بايت= ٨بت= ٢٥٦ أحتمال .
إضغط ھنا لمشاھدة الجدو ل آسكي
طريقة كتابة الأرقام في الأسمبلر :
لدلالة على أنه باينري مثال : (b) لكتابة عدد ثنائي يوضع في آخر الرمز
أما العدد العشري فلايحتاج الى أضافة وأما العدد B١١٠١٠٠١٠Binary=
في (O) أو الرمز Q١٢٧٦Octal= في نھايته (Q) لأساس ٨ فیكتب مع المرمز
في نھايته H أما العدد السداسي عشر فیكتب بوضع O١٢٧٦Octal= نھايته
مع مراعاة وضع ٠ اذا كان العدد يبدأ بحرف كما CDH٩AB٠hexadecimal=
المثال .
يجب أ ن تعرف الفرق بین تخزين الرقم كرقم أو تخزينه كنص فتخزين الرقم
٢٠١ مثلاً كرقم سسیأخذ بايت واحد وھو جاھز للقیام بعملیات رياضیة
ومنطقیه علیه أما تخزينه كنص فسیأخذ ثلاثة بايت في البايت الأو ل سیخزن
الوسائط ممكن تكون عدة أنواع :
'a' / ٣٠ / ١. معلومة فورية (مباشرة) (أ ي ثابته) مثال : ١٠
AX / : ٢. مسجل (سوف يتم شرح المسجلات بالتفصیل في الدروس القادمه ) مثال
EAX / BL
[١٠٠bx] / [] / [ ٣. موقع ذاكره (يتم تحديده عن طريق العنوا ن) مثال : [ ٢٠٠
٤.متغیر (وھو نفس السابق لكن بدل أ ن تحفظ أو تحسب العنوا ن يدوياً يقوم الأسمبلر
١/ INTVAL / STR ١count / VAR : ب أ ست بدلا المتغیر برقم يدل علىع نو انه ) مثال
: Debugge مدخل الى الديبغر
ھا قد وصلنا الى واحد من أقوى البرامج المبیته في النظام فبواسطة الیبغ تستطیع
ثم debug عمل أشیاء عجیبه وغريبه ، حسناً شغل الدوس وعند محث الأوامر أطبع
أنتر وستظھر لك علامه '-' لیل على أستعداد الديبغر على أستقبال أوامرك



(العملیات الحسابیه المتقدمه و تنقسم إلى ضرب و قسمه -:
Multiplication :- الضرب
يتم ضرب أى رقمین فى لغة الأسمبلى فى ثلاث أنظم ألى الآن -:
الأو ل : لا ٨-بت (البايت-: ( ·
و الآخر فى أى ريجستر آخر له نفس الحجم أو مكان AL يتم وضع إحدى قیم الضرب فى
للأرقام الغیر محددة الإشارھ [MUL] فى الذاكره بجانب كود الضرب الذى ھو فى حالتنا ھنا
AX . للأرقام المحددة الإشارھ . وتوضع النتیجه فى لا [IMUL] . و
٣٠ نقوم بالأتى -: * مثال : للحصول على حاصل ضرب ١٢٠
;----------------------------------
MOV CL,٣٠D
MOV AL,١٢٠D
MUL CL
MOV [١٠٠٠H] , AX ; ب ١٠٠٠ بالنظام السادس لتخزين الناتج فى الذاكره المعنونه
عشر
;----------------------------------
الثانى : لا ١٦ - بت (الكلمه-: ( ·
و ألآخرفى أى ريجستر آخر له نفس الحجم أو مكان فى AX يتم وضع إحدى القیم فى
من Low و ھذا معناه أ ن الجزء لا DX:AX . الذاكره بجانب كود الضرب و توضع النتیجه فى
DX . سیوضع فى لا High و لاجزء لا AX انتج القسمه سیخزن فى لا
٢٣٦٥ سنقوم بالآتى-: * مثال : للحصول على حاصل ضرب ٢٠٠٠٠
;----------------------------------
MOV CX,٢٣٦٥D
MOV AX,٢٠٠٠٠D MUL CX
MOV [١٠٠٠H],AX ; المكان فى الذاكره المعنون ب ١٠٠٠ تخزين الجزء الأو ل فى
MOV [١٠٠١H],DX ; المكان فى الذاكره الذى يلى المكان تخزين الجزء الثانى فى
السابق
;----------------------------------

القسمه
أيضاً تتم فى نفس النظم السابقه-:
الأو ل : لا ٨بت (بايت -: ( ·
و المقسوم علیه فى أى ريجستر حجمه بايت مثل AX يتم و ضع المقسوم فى
BYTE PTR [١٢٣٤H] , BYTE PTR أو مكان فى الذاكره لھا حجم بايت مثل BL,CL,DL,...
[DIV] . بإستخدام AH و باقى القسمه فى AL و يوضع ناتج القسمه فى [BX] .
تكون إشارة ناتج [IDIV] لاحظ -:أنه فى حالة قسمة الأرقام المحددة الإشارھ بإستخدام
Remender القسمه ھى الإشارھ العاديه فى ھذه الحالات . وتكون إشارة خارج القسمه
Integer. دائماً موجبه و صحیحه
لاحظ-:كل القیم ھنا ٨-بت إذاً , لابد من تحويل القیمه لا ٨-بت للمقسوم إلى ١٦ -بت
لیكون AH ويتم ذلك فى حالة القیم غیر محددة الإشارھ مبسح لا AX لیمكن نقلھا ألى
كله أصفار و تكون قیمة المقسوم ١٦ -بت . أما فى حالة القیم محددة الإشارھ يتم ذلك عن
فقط. AX المسئول عن تحويل البايت( ٨-بت) إلى كلمه- ١٦ ) بت) لل [CBW] طريق كود
مثال -: للحصول على ناتج قسمة(+ ١٦ ) على (- ٥) يمكننا عمل الأتى-:
;----------------------------------
MOV AL,١٦D
CBW
MOV BL,٥D
NEG BL
IDIV BL
MOV PYTE PTR[١٠٠٠H] , AL
MOV PYTE PTR[٢٠٠٠H] , AH
;----------------------------------
ثم تم نقل قیمة [CBW] . وتم عمل مد له عن طريق AL وھنا تم نقل المقسوم إلى
إذا القیم جاھزه [NEG]. بعد وضع الإشارھ السالبه عن طريق BL المقسوم علیه إلى
لعملیة القسمه ويتم حفظ الناتج فى الذاكره بعدھا.
باقى النظم كما سبق من الممكن أ ن تقوم بإستنتاجھا.
٢)التحكم فى مسار البرنامج -: )
ينقسم التحكم فى مسار البرنامج إلى عدة طرق و تقنیات و تكون مثل مثیلاتھا فى اللغات
العلیه و لكن أكثر تفصیلاً . وسنتعلم سوياً بعض من ھذه التقنیات -:
IF Statements :- أولا : جمل الشرط ·
إننى أعتبر جمل الشرط من قواعد البرمجه عموما و من أھم قواعد التحكم فى مسار
البرامج خصوصاً.
تقوم جمل الشرط عموما على و جود شرط أو إختبار لو تحقق إذاً سیقوم البرنامج بعمل
بعض المھام لن يكون فاعلھا لولم يتحقق الشرط أو فشل الإختبار , كما تحب أ ن تطلق
علیه.
إذاً , يجب علینا معرفة كیفیة إختبار قیمه (والتى يترتب علیھا الشرط فیما بعد. (
الإختبار -:
[TEST] . و [CMP] يكون بإستخدام دالتین أو كودين و ھما
١يجب أ ن تذكر القیمتین اللتان سوف يتم لھما إختبار بعدھا . و عندما تتم ھذه


الدورا ت )
-من أھم قدرا ت الحاسب الألى ھى عمل نفس الشىء مرا ت عده و لا تختلف معه عدد
ھذه المرا ت و ھى من أھم جوانب البرمجه أصلاً . فلا يمكن لبرنامج مفید ألا يحتوى على
دورھ أو عدة دورا ت لذا كان من المھم أ ن ندرجھا ھنا و تكون بعد التحكم فى مسار البرامج
لما لھا من إرتباط وثیق بما سوف نتحدث علیه.
-ھناك ثلاث أنواع من الدورا ت تتم بثلاث تقنیات مختلفه . سیتم ذكر الأنواع أولاً ثم تتبعھا
طرق عملھا و تقنیاتھا-:
الأنواع-:
الدورا ت المستمره (إلى مالانھايه-: ( ·
وھى الدورا ت التى تظل عامله إلى أ ن يتم غلق البرنامج من جانب نظام التشغیل أو غلق
الجھاز نفسه . و طبعاً أنت تسأل نفسك ھل لھذا النوع فائده فى البرمجه . أرد علیك بنعم
كما سترى-:
-التارخ و الساعه , ھل ھما يتوقفان !!؟ بالطبع لا .
-من الممكن إستخدامھا فى ترك البرنامج عاملاً وھذا فى الللغات التى تعتمد على الأوامر
Squencial programming . المتوالیه
-أيضاً من الممكن أ ن تستخدم فى عمل الفیروسات . تكفى دورھ صغیره غیر منتھیه
لإستغلال معظم و قت المعالج من غیر فائده و التأثیر على باقى البرامج الأخرى فى النظم
Multiprogramming and Time-sharing Operating systems . متعددة البرامج
الدورا ت محددة المرا ت-: ·
فى ھذه الدورا ت يكون عدد مرا ت تنفیذ الدورھ محدد و ھى من أكثر الأنواع إنتشاراً و لھا
إستخدامات عده تتنوع بین العملیات الحسابیه والمنطقیه و باقى العملیات الأخرى.
FOR...NEXT) LOOP) . نم أمثلتھا لا
الدورا ت المحددھ بشرط معین-: ·
يكون ھناك شرط يتم إختبارھ فى أو ل الدورھ أو فى آخرھا . ويتوقف تنفیذ المره التالیه فى
الدورھ على إختبار ھذا الشرط , وھنا يتم إستخدام إحدى الشروط و طرق إختبارھا
السابقه.
التقنیات و طرق العمل-:
الطريقه الیدويه -: ·
عن طريق تحديد عنوا ن فى أو ل أمر فى الدورھ ثم فى نھاية أوامر الدورھ يتم إدراج أمر قفز
(Conditional / للعنوا ن الذى وضعناه سابقاً و يكون القفز مشروط أو غیر مشروط
Unconditional Jump) .
مثال -:
;----------------------------------
MOV AL,٥
XOR CL,CL ;CL = ٠
START_LOOP : ; بداية الدورھ
ADD CL,AL
DEC


الى هنا اكو لو اديت لكم شي بسيط وانشاء الله راح اعطيكم شروحات اخرى اهم شي الموضوع حاز على رضاكم



التوقيع


افتراضي  مقدمة في لغة الأسمبلي Eee01_10
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
افتراضي مقدمة في لغة الأسمبلي
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» افتراضي رد: هنا يوضع شفرات الارت والشوتايم مع التحديث اليومي

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
الازعـــ المشاغب ـــر :: (&*)( منتدى الحوار العام)(&*)() :: عالم الكمبيوتر والتكنولوجيا-
انتقل الى: