السلام عليكم
هل فكرة يوما كيف تعمل if الشرطية الموجودة في معظم لغات البرمجة (c,c++,c#,php الخ ..) , وغيرها مثل switch , كيف للحسوب ان يعرف ان مثلا 1 = 1 وتنفيذ الامر اذا كان يساويه
عندما تترجم إلى لغة الأسمبلي يوجد تعليمات تقوم بالمطلوب
حيث تقوم بنقل قيمة كل من طرفي المقارنة إلى خانتين في الذاكرة
ثم تنقل إحداها إلى أحد السجلات و من ثم تستخدم تعليمة مقارنة cmp ويتم وضع نتيجة المقارنة في سجل آخر
و من ثم هناك تعليمة قفز مثل jne أي Jump if Not Equal أي اقفز في حال عدم المساواة و يتعرف على ذلك من خلال القيمة التي تمثل نتيجة المقارنة والتي وضعت في السجل المذكور قبل قليل
فإن وجدت قيمة غير الصفر تقوم بالقفز متعدية الشرط أو أنها لا تقفز وتتابع سير التعليمات والتي هي جسم الشرط
كل العمليات المنطقية داخل الحاسوب
تكون بعد مرحلة تحويل الكود لاسمبلي منها للغة الآلة و أخيرا تنتقل الاشارات الى
وحدة الحساب و المنطق في المعالج (ALU)
و هذا الرابط يشرح عملها
التعليقات