كمحاولة للتعلم هذه اللغة اريد ان اعرف الفرق الدقيق بين هاتين التعليمتين je و jz مع العلم انهما تعملان نفس المهمة وتتاثران بحالة الzf
وكيف استخدم jg فهل هي لمقارنة عددين اذا كان احدهما اكبر من الاخر؟؟؟ وهل تتأثر بال zf ؟؟ ام هي مستقلة ؟
كمحاولة للتعلم هذه اللغة اريد ان اعرف الفرق الدقيق بين هاتين التعليمتين je و jz مع العلم انهما تعملان نفس المهمة وتتاثران بحالة الzf
وكيف استخدم jg فهل هي لمقارنة عددين اذا كان احدهما اكبر من الاخر؟؟؟ وهل تتأثر بال zf ؟؟ ام هي مستقلة ؟
السلام عليكم,
إن التعليمات JE و JZ كلتاهما يعتمدان على على الفلاغ الصفر. وأضن أن التعليمتان وضعت معا ليكن هناك تشابه بين التعليمات الأخرى. ولهذا أرجع إلى التعليمات الأخرى وربما تفسر لنا هذا الأمر.
نعرف مثلا أن هناك تعليمات أخرى قد تتشابه إلى حد ما . فمثلا كما ذكرت هناك تعليمة JG وهي تدل كما يعني اسمها Jump if Greater يعني القفز إذا كان أكبر . ونعرف أن هناك تعليمة أخرى JA وهي تعني Jump if Above ولهذا فهي قد تكون كالتعليمة السابقة والفرق بينهما أن JG تتعامل مع الأرقام Signed . وبما أن في كل حالة هناك تعليمتين فقد تكون JE قد وضعت للتطابق. علما أيضا أن JE نستعملها في أغلب الحالات بعد مقارنة عددين وهذا سيكون شيئا ما منطقيا بسبب اسم التعليمة بينما JZ قد نستعملها لقراءة حالة الفلاغ في أي وقت حتى إذا لم تسبقها تعليمة مقارنة من جهة المبرمج. وكل هذا لا يجعلهما يختلفان في المبدئ.
التعليمة JG كما ذكرت هي لتحديد أن العدد أكبر من الآخر وهي تتعامل مع الأرقام Signed والذي يحددها هي طبعا الفلاغات ZF فلاغ الصفر و SF ساين فلاغ بينما مقابلها JA تتعامل مع JZ و CF .
ومضادات التعليمتين هما JL وتعني Jump if Lower وكذلك JB وتعني Jump if Below .
إلى اللقاء.
يوجد لدي جدوال ملخصة للأمر Jump لكن يوجد مشكلة بالمرفقات برنامج المنتدى يظهر رسالة بإن الإمتداد zip غير مسموح به.
السلام عليكم,
الأخ سيناريو : شكرا على تعاونك . حاول مرة أخرى وإن شاء الله يكون خير علما أنه عادة لا يكون أي مشكل مع ملفات ZIP.
إلى اللقاء.
هذا الموضوع مغلق.