لغة الآلة: الفرق بين النسختين

[نسخة منشورة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
ط استرجاع تعديلات 5.41.129.5 (نقاش) حتى آخر نسخة بواسطة ASammourBot
وسم: استرجاع
JarBot (نقاش | مساهمات)
ط بوت:الإبلاغ عن رابط معطوب أو مؤرشف V4.2 (تجريبي)
سطر 14:
كل معالج أو عائلة معالجات لديها مجموعة التعليمات الخاصة بها. التعليمات هي أنماط من [[بت|البتات]] التي تتوافق مع التصميم المادي لأوامر مختلفة إلى الجهاز. وبالتالي، فإن مجموعة التعليمات خاصة بفئة المعالجات التي تستخدم (في الغالب) نفس البنية. غالباً ما تتضمن تصميمات المعالج اللاحقة أو المشتقة كل تعليمات المعالجات السابقة وربما تضيف تعليمات إضافية. من حين لآخر، سيؤدي التصميم التالي إلى إيقاف أو تغيير معنى بعض تعليمات التعليمات البرمجية (عادةً لأنها مطلوبة لأغراض جديدة)، مما يؤثر على توافق التعليمات البرمجية إلى حد ما؛ حتى المعالجات المتوافقة تمامًا تقريبًا قد تظهر سلوكًا مختلفًا بعض الشيء لبعض التعليمات، ولكن نادرًا ما تكون هذه مشكلة. قد تختلف الأنظمة أيضًا في التفاصيل الأخرى، مثل ترتيب الذاكرة أو أنظمة التشغيل أو [[ملحقات (حاسوب)|الأجهزة الطرفية]]. نظرًا لاعتماد البرنامج على هذه العوامل بشكل طبيعي، لن تعمل الأنظمة المختلفة عادةً على نفس كود الآلة، حتى في حالة استخدام نفس نوع المعالج.
 
قد تحتوي مجموعة التعليمات الخاصة بالمعالج على كافة التعليمات من نفس الطول، أو قد يكون لها تعليمات متغيرة الطول. تختلف كيفية تنظيم الأنماط اختلافًا كبيرًا مع البنية المحددة، وغالبًا أيضًا مع نوع التعليمة. تحتوي معظم التعليمات على واحد أو أكثر من حقول [[كود العملية|كود التشغيل]] التي تحدد نوع التعليمة الأساسية (مثل الحساب، والعمليات المنطقية، و{{وصلة إنترويكي|تفرع (علوم الحاسب)|Branch (computer science)|نص=القفز}}، وما إلى ذلك) والتشغيل الفعلي (مثل إضافة أو مقارنة) والحقول الأخرى التي قد تعطي نوع [[معامل حسابي|المعامل]]، أو {{وصلة إنترويكي|وضع العنونة|Addressing mode}}، أو موازنة و تسجيل العناوين، أو القيمة الفعلية نفسها (تسمى هذه المعاملات المستمرة الواردة في التعليمة بـ ''المعاملية'' أو instantiates).<ref>{{مرجع ويب|المسارمسار=http://programmedlessons.org/AssemblyTutorial/Chapter-11/ass11_2.html|العنوانعنوان=Immediate Operand|المؤلفمؤلف=Bradley Kjell; kjell at ieee dot org|الناشرناشر=| مسار الأرشيفأرشيف = httphttps://web.archive.org/web/20160419001406/http://programmedlessons.org/AssemblyTutorial/Chapter-11/ass11_2.html | تاريخ الأرشيفأرشيف = 19 أبريل 2016 }}</ref>
 
ليس كل الآلات أو التعليمات الفردية لها معاملات صريحة. تحتوي {{وصلة إنترويكي|تراكم (حوسبة)|Accumulator (computing)|نص=الآلة المراكمة}} على مُجمّع مدمج يسفر عن تراكم ضمني لمعظم التعليمات الحسابية. تشتمل المعماريات الأخرى (مثل 8086 و عائلة x86) على إصدارات من تراكمات التعليمات الشائعة، مع اعتبار جهاز التراكم كأحد السجلات العامة من خلال إرشادات أطول. يحتوي {{وصلة إنترويكي|جهاز مكدس|Stack machine|نص=الجهاز المكدس}} على معظم أو كافة المعاملات الخاصة به على مكدس ضمني. غالبًا ما تحتوي تعليمات الأغراض الخاصة أيضًا على معاملات صريحة (على سبيل المثال، تعمل وحدة المعالجة المركزية في بنية x86 على كتابة القيم في أربعة سجلات للمقصد الضمني). هذا التمييز بين المعاملات الصريحة والضمنية مهم في مولدات الكود، خاصة في أجزاء تخصيص المسجل وتتبع النطاق الحي. يمكن لمُحسِّن الشفرة الجيد أن يتتبع المعامِلات الضمنية والصريحة التي قد تسمح {{وصلة إنترويكي|طي مستمر|Constant folding|نص=بالانتشار المستمر}} على نحو متكرر، مع {{وصلة إنترويكي|طي مستمر|Constant folding}} للمسجلات (مسجل يُنسب نتيجة تعبير ثابت يتم تحريره باستبداله بذلك الثابت) وتحسينات أخرى في الكود.
سطر 23:
وعادةً ما تكون هذه التعليمات مكتوبة [[لغة برمجة عالية المستوى|بلغة برمجة عالية المستوى]] يمكن للإنسان التعامل معها بسهولة وكفاءة وهي أقرب إلى لغة البشر الطبيعية من اللغة البرمجية التي يفهمها جهاز الحاسب وهي لغة الآلة (Machine Language).
 
ويتم تحويل جميع الجمل البرمجية المكتوبة بلغات برمجة عالية المستوى وتنفيذها جملة جملة باستخدام [[علم التفسير|المفسر]] (Interpreter) أو تنفيذها دفعة واحدة باستخدام [[محول برمجي|المترجم]] Compiler.
 
والشفرة الناتجة من هذا التحويل يُطلق عليها لغة الآلة Machine Language أو شفرة الهدف Object Code. يمكن أيضًا كتابة البرامج باستخدام لغة [[Assemblyلغة تجميع|الأسيمبلي]](Assembly)- وهي - عبارة عن ترميز للغة البرمجية التي يفهمها الحاسب باستخدام الأحرف الهجائية الإنجليزية. هذا ويجب تحويل لغة Assembly إلى اللغة البرمجية التي يفهمها الحاسب باستخدام أداة المجمـِّع Assembler{{لغات البرمجة حسب المستوى}}
 
== مراجع ==
سطر 34:
| الأول = هينيسي
| الأخير = جون
| وصلة المؤلفمؤلف = جون هينيسي
|المؤلف2مؤلف2=ديفيد باترسون
|وصلة المؤلف2مؤلف2=ديفيد باترسون (عالم)
| العنوانعنوان = تنظيم وتصميم الكمبيوتر. واجهة العتاد/البرامج.
| الناشرناشر = مورغان كاوفمان الناشرين
| isbn = 1-55860-281-X
}}
سطر 44:
| الأول = تانينباوم
| الأخير = أندرو
| وصلة المؤلفمؤلف = أندرو تانينباوم
| العنوانعنوان = تنظيم الكمبيوتر المنظم
| الناشرناشر = برنتيس هول
| isbn = 0-13-020435-8
}}
سطر 52:
| الأول =بروكشير
| الأخير = جلين
| العنوانعنوان = علوم الكمبيوتر: نظرة عامة
| الناشرناشر = أديسون ويسلي
| isbn = 0-321-38701-5
}}