متى كان المجمع (المجمع) ولغة الماكينة؟ مقدمة نظام مقاطعة نظام

ميزانية الدولة والمؤسسة التعليمية

شيء: علوم الكمبيوتر

نبذة مختصرة

موضوع: تاريخ لغات البرمجة.

مجمع.

إجراء: طالب الصف 8،

المدرسة الثانوية №1467.

سوروكين نيكولاي

رأس: tsvetkova Oksana mikhailovna

مقدمة

مع زيادة حجم الحساب، ظهرت أول أداة محمولة محمولة - "حسابات".

في بداية القرن السابع عشر، كانت هناك حاجة للحوسبة المعقدة. مطلوب أجهزة قادرة على الأداء حجم كبير الحسابات ذات الدقة عالية. في عام 1642، شيد باسكال عالم الرياضيات الفرنسي أول آلة عد ميكانيكية - "Pascalina".

في عام 1830، عرض عالم عالم اللغة الإنجليزية فكرة أول آلة الحوسبة القابلة للبرمجة ("الجهاز التحليلي"). يجب تفعيلها من قبل قوة البخار، وتم تشفير البرامج في لكمة. لم يكن من الممكن تنفيذ هذه الفكرة، لأنه لم يكن من الممكن إجراء بعض التفاصيل من السيارة.

قام الأول بتنفيذ فكرة Hollerit اللكم. اخترع السيارة لمعالجة نتائج التعداد. في سيارته، قام أولا بتطبيق الكهرباء في الحسابات. في عام 1930، اخترع العالم الأمريكي بوش المحلل التفاضلي - أول كمبيوتر في العالم.

زخم كبير في تطوير تكنولوجيا الحوسبة أعطى الحرب العالمية الثانية. أخذ الجيش الكمبيوتر الذي أصبحت فيه مارك 1 - أول كمبيوتر رقمي في العالم، اخترع في عام 1944 من قبل الأستاذ أيقان. استخدم مزيج من الإشارات الكهربائية والمحركات الميكانيكية. الأبعاد: 15 × 2.5 م.، 750000 أجزاء. يمكن أن تضاعف اثنين من أرقام التفريغ 23 ل 4 ق.

في عام 1946، تم إنشاء أول كمبيوتر إلكتروني من قبل مجموعة المهندسين من قبل وزارة الخارجية الأمريكية - "eniak". السرعة: 5000 عملية إضافة و 300 عملية الضرب في الثانية الواحدة. الأبعاد: 30 م. في الطول، حجم - 85 م 3، الوزن - 30 طن. تستخدم 18000 el. مصابيح.

أول سيارة مع برنامج مزمن - "Edsak" - تم إنشاؤه في عام 1949، وفي عام 1951 أنشأ السيارة "

Junivak "- أول كمبيوتر تسلسلي مع برنامج مزمن. في هذه السيارة، تم استخدام شريط مغناطيسي لتسجيل ومعلومات تخزين المعلومات

لماذا أحتاج إلى لغة البرمجة؟

ظهرت أجهزة الكمبيوتر منذ وقت طويل في MPE لدينا، ولكن في آخر مرة بدأنا في استخدامها بجد في العديد من أيدي حياة الإنسان. منذ عشر سنوات كانت ندرة لرؤية بعض أجهزة الكمبيوتر الشخصية - كانت، ولكنها كانت مكلفة للغاية، وليس حتى كل شركة يمكن أن يكون لها جهاز كمبيوتر في مكتبي. و الأن؟ الآن في كل منزل ثالث هناك جهاز كمبيوتر دخل بالفعل حياة سكان المنزل.

ظهرت فكرة خلق الذكاء الاصطناعي منذ وقت طويل، ولكن فقط في القرن العشرين بدأت تنفذ. في البداية كانت هناك أجهزة كمبيوتر ضخمة تؤثر على حجم منزل ضخم. استخدام مخرين مثل نفسك تفهم، لم يكن مريحا للغاية. ولكن ماذا يمكنك أن تفعل؟ لكن العالم لم يكن يقف في مكان واحد من التطوير التطوري - تغير الناس، وتغير موطنها، ومعها التقنيات نفسها، وأكثر تحسن. وأصبحت أجهزة الكمبيوتر أقل وأقل في حجمها، حتى تصل إلى حجم اليوم.

ولكن بعد كل شيء، فإنه يحتاج أيضا إلى تواصل بطريقة أو بأخرى مع السيارة - بعد كل شيء، من يحتاج إلى سيارة غير مدارة؟ في البداية، تصرف الناس اتصالاتهم مع أجهزة الكمبيوتر بواسطة Perfoch-Roll. الكمون هم بطاقات صغيرة يتم فيها تطبيق صفوف الأرقام. يحتوي الكمبيوتر على "محرك أقراص"، حيث تم إدراج البطاقات نفسها وتضع ثقوبا على الأرقام ذات الإبر الصغيرة. مثل هذه الدردشة غير قادر على الاستمتاع - بعد كل شيء، ليس من المناسب جدا حمل كومة من كومة القلب، والتي بعد استخدام واحد يجب أن يرميها.

ولكن، مثل التقنيات الأخرى، وعملية اتصال الرجل الذكاء الاصطناعي مرت بعض التغييرات. الآن شخص يقضي محادثته مع جهاز كمبيوتر باستخدام لوحة المفاتيح والماوس. إنه مريح للغاية وأحيانا يعطي متعة الشخص.

تمثل آلات الحوسبة الحديثة واحدة من أهم إنجازات الفكر الإنساني، الذي يصعب المبالغة في تقدير تأثيره على تطوير التقدم العلمي والتكنولوجي. نطاق الكمبيوتر يتوسع باستمرار. هذا يساهم إلى حد كبير في توزيع أجهزة الكمبيوتر الشخصية، وخاصة Microevm.

خلال الوقت الذي مرت منذ 50s، أصبح الكمبيوتر الرقمي "سحر"، ولكن في نفس الوقت نفاثة باهظة الثمن، فريدة من نوعها ومحرج من المصابيح الإلكترونية والأسلاك والنوى المغناطيسية في آلة صغيرة الحجم - كمبيوتر شخصي - يتكون من ملايين أجهزة أشباه الموصلات الصغيرة، والتي يتم تعبئتها في صناديق بلاستيكية صغيرة.

نتيجة لهذا التحول، بدأت أجهزة الكمبيوتر في تطبيقها في كل مكان. يديرون عمل السجلات النقدية، اتبع أعمال أنظمة الإشعال السيارات، استمر في مراعاة ميزانية الأسرة، أو تستخدم ببساطة كمعقد ترفيهي ... لكنه مجرد جزء صغير من إمكانيات أجهزة الكمبيوتر الحديثة. علاوة على ذلك، يشير التقدم السريع في مجال الإلكترونيات الدقيقة أشباه الموصلات، وهي قاعدة بيانات لتكنولوجيا الحوسبة، إلى أن مستوى اليوم من كل من أجهزة الكمبيوتر نفسها وتطبيقاتها ليست سوى تشابه ضعيف لما سيأتي في المستقبل.

تبدأ أجهزة الكمبيوتر في لمس حياة كل شخص. إذا مرضت، وإذا تم إرسالك إلى المستشفى، فسوف أصل إلى هناك، في العالم حيث يعيش الناس من أجهزة الكمبيوتر (من حيث المستشفيات الحديثة، حتى تلبي أجهزة الكمبيوتر أكثر من المرضى أنفسهم، وسوف تنمو هذه النسبة مع الوقت، وعدد زيادة الوزن من المرضى). دراسة تدريجية معدات الحاسوب إنهم يحاولون الدخول في برامج التعليم المدرسي كشيء إلزامي يمكن للطفل أن يعرف بالفعل هيكل وأقدرات أجهزة الكمبيوتر من سن مبكرة. وفي المدارس نفسها (بشكل أساسي في الغرب وأمريكا) لسنوات عديدة، تم تطبيق أجهزة الكمبيوتر لإجراء وثائق التدريب، والآن يتم استخدامها في دراسة العديد من التخصصات الأكاديمية التي لا تتعلق مباشرة بتكنولوجيا الحوسبة. حتى في المدرسة الابتدائية، يتم تقديم أجهزة الكمبيوتر لدراسة دورات الرياضيات والفيزياء الأولية. تلقى المعالجون المعالجون المعالجون أنفسهم أقل انتشارا من أجهزة الكمبيوتر - وهي مضمنة في مواقد المطبخ للطبخ وغسالات الصحون وحتى في ساعات.

الألعاب المبنية على أساس المعالجات الدقيقة كانت منتشرة للغاية. اليوم، تحتل صناعة الألعاب جزءا كبيرا من السوق، مما يدفع تدريجيا إلى الترفيه الآخرين للأطفال. ولكن بالنسبة لجسم الأطفال، فهي ضارة للغاية في الجلوس لساعات خلف الشاشة وأصابت بشدة المفاتيح، لأن نوع من الطفل يمكن أن يطور نوعا من المرض - عندما يكون لديه واحد فقط على العقل - جهاز كمبيوتر، ولا شيء آخر وبعد عادة ما يصبح الأطفال الذين يعانون من هذا المرض عدوانيا إذا بدأوا في تقييد الوصول إلى الألعاب. يختفي هؤلاء الأطفال على الفور أي رغبة في القيام بشيء لا ينطبق على جهاز كمبيوتر وأنهم غير مهتمين - لذلك يبدأون في إلقاء دراساتهم، مما يؤدي إلى عدم وجود عواقب جيدة للغاية.

بالفعل، يمكن لأجهزة الكمبيوتر تنطق بوضوح العبارات المختلفة والعبارات ولعب الموسيقى I.T.D. يمكن للشخص الآن كتابة بعض الكلمات والاقتراحات وحتى التراكيب الموسيقية على جهاز الكمبيوتر الخاص بهم من أجل الكمبيوتر ثم لعبها في أي وقت معين.

تتمكن أجهزة الكمبيوتر أيضا من إدراك الكلام الفموي كإشارات، لكن عليهم إجراء وظيفة رائعة من فك الشفوف، إذا كان شكل اتصال بالكاد. بعد كل شيء، يمكن للفريق نفسه ونطق الشخص نفسه بعدة طرق، وفي كل وقت سيصدر هذا الفريق بشكل مختلف؛ وفي العالم بأسره - مليارات من الناس، والجميع يحثون نفس الفريق بعدة طرق مختلفة. لذلك، في هذا الوقت، من الصعب للغاية إنشاء جهاز كمبيوتر سيتم التحكم فيه عن طريق صوت الشخص. تحاول العديد من الشركات حل هذه المشاكل. تصنع بعض الشركات علامات صغيرة في طريقها إلى هذا الغرض، لكن لا تزال هذه العلامات لا تزال غير مرئية تقريبا.

لكن مشكلة التعرف على الكلام هي جزء من مشكلة أوسع تسمى التعرف على الصورة. إذا كان بإمكان أجهزة الكمبيوتر التعرف على الصور جيدا، فستتمكن من تحليل الصور بالأصوات والأصبع، وكذلك أداء العديد من الوظائف المفيدة الأخرى (رسائل الفرز التي يتم انتهاكها الآن). تجدر الإشارة إلى أن الدماغ البشري يتعرف تماما على الاعتراف بالصور، حتى لو كان هناك العديد من الضوضاء والتشويه، والدراسات في هذا المجال، تهدف إلى الاقتراب من القدرات ذات الصلة للكمبيوتر إلى القدرات البشرية، واعدة للغاية. إذا كان بإمكان أجهزة الكمبيوتر التعرف على الكلام والاستجابة لها في شكل لفظي، فستكون من الممكن الدخول في هذا النوع من البرامج والبيانات. سيسمح ذلك إلى خطاب التحدث إلى الكمبيوتر الذي يجب عليه فعله، والاستماع إلى رأيه في هذا الموضوع، بالطبع، أن المؤشرات الصادرة لها واضحة، لا تحتوي على تناقضات I.T.

سوف تبسط التواصل عن طريق الكمبيوتر مع أجهزة الكمبيوتر برمجةها، ولكن لا يزال هناك مشكلة لم يتم حلها، واللغة التي يجب أن تتواصل معها. تقدم العديد من العديد من اللغة الإنجليزية لهذه الأغراض، لكنها لا تملك الدقة والحاجة غير المبادلة من وجهة نظر الكمبيوتر والبرامج القابلة للتنفيذ. في هذا المجال، تم بالفعل الكثير، ولكن الكثير للقيام به.

كثيرا ما يشكو من أن الآخرين لا يفهموننا؛ ولكن حتى الآن، فإن أجهزة الكمبيوتر الشخصية نفسها غير قادرة على فهم الولايات المتحدة تماما، أو فهم ما نريد أن نقوله بنصف نصف. وفي فترة زمنية، سيتعين علينا أن نكون راضين مع هذه الآلات التي تتبع تعليماتنا ببساطة، من خلال أداءها "بدقة ملليمتر".

للتواصل مع أجهزة الكمبيوتر، حتى في بعض الأحيان. perfocarts، ثم يستخدم المبرمون لغة البرمجة، مشابهة جدا للمجمع الحديث. هذه لغة حيث تتم كتابة جميع الأوامر التي تدخل الكمبيوتر بالتفصيل كلمات خاصة وأيقونات (؟).

في الوقت الحاضر، تستخدم لغات البرمجة ذات المستوى الأعلى بقوة، حيث تعمل معها أسهل بكثير من مع المجمع، لأن كلمة واحدة يمكن أن تحل محل عدة أوامر في وقت واحد. وعلاوة على ذلك، فإن معظم لغات البرمجة رفيعة المستوى في أسماء الأوامر المستخدمة عند التواصل مع استخدام الكمبيوتر معادلات اللغة الانجليزيةهذا يسهل البرمجة بشكل طبيعي. ولكن هناك واحدة ناقص فيها مقارنة مع لغات مثل المجمع - في المجمع، يتم توزيع جميع الأوامر المستلمة من البرنامج بوضوح في ذاكرة الكمبيوتر، والمساحات المجانية المحتلة، وبالتالي الفوز بشكل كبير في السرعة؛ واللغات الرفيعة المستوى لا تعرف كيف هذا، على التوالي، وفقدان سرعة تنفيذ البرنامج. وفي عالمنا اليوم، يعلم الجميع أن: "الوقت هو المال".

على الرغم من أنه في حين أن الكمبيوتر أدنى من شخص من وجهة نظر النشاط الإبداعي، لأن السيارة ليست مهباة مثل هذه الصفات التي يمكن أن تساعدها في إنشاء شيء جديد، والذي لا يتم إدخاله في ذاكرتها من قبل الشخص نفسه.

يبدو أن حارة الناس يعتقدون أن مصطلحات "آلة الحوسبة" و "معدات الحوسبة" مرادفة وربطها بالمعدات المادية، مثل المعالج الدقيق وعرض الأقراص والأقراص والطابعات وغيرها من جذب الناس عندما يرى شخص الحاسوب. على الرغم من أن هذه الأجهزة مهمة، إلا أنه بعد كل شيء، فإنها تشكل فقط "Ausberg Top". في المرحلة الأولية المستخدمة الكمبيوتر الحديث نحن نتعامل مع جهاز كمبيوتر بنفسك، ولكن مع مجموعة من القواعد التي تسمى لغات البرمجة، والتي تشير إلى الإجراءات التي يجب أن يؤديها الكمبيوتر. يتم التأكيد على القيمة المهمة لغتها البرمجة بحقيقة أن آلة الحوسبة نفسها يمكن اعتبارها مترجم الأجهزة من لغة معينة تسمى لغة الجهاز. لضمان التشغيل الفعال للجهاز، يتم تطوير لغات الماكينة، فإن استخدامه يمثل صعوبة الشخص المعروف. معظم المستخدمين لا يشعرون بهذه المضايقات بسبب وجود لغة واحدة أو أكثر تم إنشاؤها لتحسين اتصال الشخص الذي يحتوي على الجهاز. يتجلى مرونة آلة الحوسبة في حقيقة أنه يمكن تنفيذ برنامج المترجم (بشكل عام، يطلق عليه ONM التحويل البرمجيات المترجمين المترجمين الفوريين) لتحويل البرامج من اللغات الموجهة نحو المستخدم والبرامج في لغة الجهاز. (بدوره، حتى البرامج والألعاب، تكون قذائف النظام ليست أكثر من برنامج مترجم بسيط إلى حد ما، والتي، بقدر العمل، أو عناوين اللعبة بمساعدة فرقها إلى "الكمبيوتر والمساعدات الخارجية"، ترجمة فرق بلغات الآلات. وكل هذا يحدث في الوقت الفعلي.)

اللغات اللغات ولغات المجمع و

لغات عالية المستوى

يكتب مبرمجات البرامج في مختلف لغات البرمجة، وبعضها مفهو للغاية للكمبيوتر، بينما يحتاج البعض الآخر إلى مرحلة متوسطة من البث. يمكن تقسيم مئات اللغات المتاحة إلى ثلاثة أنواع عامة:

1. لغات الجهاز

2. لغات التجميع

3. لغات رفيعة المستوى.

يمكن أن يفهم كل جهاز كمبيوتر فقط لغة الجهاز، وهي اللغة الطبيعية لجهاز كمبيوتر معين. يرتبط ارتباطا وثيقا بأجهزةها. تتكون لغات الماكينة عموما من تسلسل للأرقام (عادة الأصفار والوحدات)، والتي هي أوامر لأداء عمليات ابتدائية واحدة. آلية اللغات المعتمدة على الجهاز، أي لا يمكن استخدام لغة آلة محددة فقط مع نوع معين من الكمبيوتر. لغات الماكينة غير مريحة للإدراك من قبل الرجل.

نظرا لأن أجهزة الكمبيوتر يتم توزيعها، أصبح من الواضح أن البرمجة على لغات الماكينة تمنع تطوير معدات الكمبيوتر، بطيئة للغاية ومعظم المبرمجين مع احتلال لا يطاق. بدلا من تسلسل الأرقام، فإن المفهوم المباشر للكمبيوتر، بدأ المبرمجون لتمثيل العمليات الأولية في تطبيق الاختصارات الناطقة باللغة الإنجليزية، والتي شكلت أساس لغات المجمع. لتحويل البرامج المكتوبة بهذه اللغات، تم تطوير مترجمين البرامج في لغة الماكينة. المجمعينوبعد حدث التحول بسرعة تساوي سرعة الكمبيوتر. مع ظهور لغات المجمع، تم توسيع استخدام أجهزة الكمبيوتر بشكل كبير، ولكن لا تزال بحاجة إلى كتابة عدد كبير من التعليمات حتى لتنفيذ محلول أبسط المهام. لتسريع عملية البرمجة، تم تطوير لغات رفيعة المستوى، حيث يكفي لكتابة مشغل واحد لإجراء إجراءات معقدة. تسمى برامج تحويل تسلسل المشغلين في لغة رفيعة المستوى إلى لغة آلة. في لغات الرفيعة المستوى، غالبا ما تبدو الإرشادات التي كتبها المبرمون مثل النص العادي باللغة الإنجليزية باستخدام علامات رياضية تقليدية.

واحدة من اللغة الرفيعة المستوى هي لغة البرمجة

تاريخ اللغة S.

لغة مع بداية لغتين، BCPL و B. في عام 1967، طورت مارتن ريتشاردز BCPL كصغلة لكتابة الجهاز البرمجيات والتركيبات. في عام 1970، يستخدم كين طومسون في إنشاء أنظمة تشغيل UNIX المبكرة في كمبيوتر Dec PDP-7. في كل من BCPL، وبالتطلاع عبر المتغيرات غير مقسمة إلى أنواع، فإن كل قيمة بيانات تشغل كلمة واحدة في الذاكرة والمسؤولية عن التمييز، على سبيل المثال، أعداد صحيحة وأرقام حقيقية سقطت بالكامل على أكتاف المبرمج.

تم تطوير لغة ج (بناء على ج) دينيس ريتشي من مختبرات بيل وتنفذ لأول مرة في عام 1972 في كمبيوتر DEC PDP-11. شهرة مع تلقي كلغة من يونكس. اليوم، تم كتابة جميع أنظمة التشغيل الرئيسية تقريبا على C و / أو C ++. بعد عقدين، يتوفر على معظم أجهزة الكمبيوتر. لا يعتمد على الأجهزة.

في أواخر السبعينيات، تحولت إلى ما نسميه "C التقليدية C". في عام 1983، أنشأت المعيار الموحد لهذه اللغة من قبل اللجنة الأمريكية للمعايير الوطنية في مجال أجهزة الكمبيوتر ومعالجة المعلومات.

استنتاج

بناء على هذا الملخص، يمكن أن نستنتج أن حياتنا تتخلى تماما عن تقنيات الكمبيوتر. في أي وقت سوف يمر القليل من أجهزة الكمبيوتر وسوف تقف أجهزة الكمبيوتر في كل مكان حيث يكون وجود شخص ضروري. ولكن دون معرفة معينة، سيكون التواصل مع الكمبيوتر مستحيلا. ومن أجل جعلها تعمل لنفسك، تحتاج إلى معرفته لغة اللغة برمجة.

قائمة الأدب المستعمل

1. توم SVAN "تطوير توربو توربو"، الجدلي، كييف، 1996

2. Berezin B.I.، Berezin S.B. " دورة البداية البرمجة "، الحوار MII، موسكو، 1996

3. محاضرات comleva nina viktorovna للموضوع "لغات البرمجة وأساليب البث"

4.x.m.deter، كيفية البرنامج على C، Binin النشر دار النشر، موسكو، 2000

ستنظر المقال في تأسيس لغة المجمع فيما يتعلق بنية Win32. إنه سجل رمزي لرموز الآلات. في أي آلة الحوسبة الإلكترونية، يكون أدنى مستوى هو الأجهزة. تستخدم إدارة العمليات هنا من قبل أوامر أو تعليمات على لغة الجهاز. في هذا المجال أن المجمع مصمم للعمل.

البرمجة على المجمع

كتابة البرنامج على المجمع هو عملية صعبة للغاية وتكلفة. لإنشاء خوارزمية فعالة، فهم عميق لعمل الكمبيوتر، ومعرفة تفاصيل الفرق، وكذلك زيادة الاهتمام والدقة. الكفاءة هي معلمة حاسمة للبرمجة لتجميعها.

الميزة الرئيسية لأن لغة المجمع هي أنها تسمح لك بإنشاء موجز و البرامج السريعةوبعد لذلك، يستخدم عادة لحل المهام المتخصصة للغاية. مطلوب التعليمات البرمجية التي تعمل بكفاءة مع مكونات الأجهزة، أو هناك حاجة إلى برنامج أو ذاكرة أو وقت التنفيذ.

السجلات

تشير السجلات في لغة المجمع إلى خلايا الذاكرة الموجودة مباشرة على الكريستال مع Allu (المعالج). ميزة هذا النوع من الذاكرة هو معدل الاستئناف لها، وهو أسرع بكثير ذاكرة الوصول العشوائي الحاسوب. ويطلق عليه أيضا ذاكرة الوصول العشوائي فائقة السرعة (شرطي أو SRAM).

هناك أنواع السجلات التالية:

  1. سجلات الغرض العام (رون).
  2. الأعلام.
  3. مؤشر القيادة.
  4. سجل القطاعات.

هناك 8 سجلات عامة لكل منها، كل حجم من 32 بت.

يمكن إجراء الوصول إلى EAX، ECX، EDX، ebx، في وضع 32 بت، 16 بت - AX، BX، CX، DX، بالإضافة إلى 8 بت - آه و Al، BH و BL، إلخ.

الحرف "E" في أسماء السجلات الوسائل الموسعة (متقدم). ترتبط الأسماء نفسها بأسمائها باللغة الإنجليزية:

  • سجل تسجيل (AX) - للعمليات الحسابية.
  • سجل العداد (CX) - للتحولات والدورات.
  • سجل البيانات (DX) - للعمليات الحسابية وعمليات الإدخال / الإخراج.
  • سجل قاعدة (BX) - للمؤشر إلى البيانات.
  • Stack Pointer Register (SP) - لمؤشر Stack Vertex.
  • سجل مؤشر قاعدة المكدس (BP) - للحصول على مؤشر قاعدة كومة.
  • سجل مؤشر المصدر (SI) - لمؤشر المرسل (المصدر).
  • سجل مؤشر الوجهة (DI) - للمستلم.

تخصص رون للمجمع مشروط. يمكن استخدامها في أي عمليات. ومع ذلك، فإن بعض الأوامر قادرة على تطبيق سجلات معينة فقط. على سبيل المثال، تستخدم أوامر الدورة ESX لتخزين القيمة العدادية.

سجل الأعلام. هذا يعني بايت، والتي يمكن أن تأخذ القيم 0 و 1. مجموعة جميع الأعلام (طلبها 30) يظهر حالة المعالج. أمثلة على الأعلام: تحمل العلم (CF) - علم النقل، علم الفائض (من) - الفائض، العلم المتداخن (NT) - علامة نيسينغ المهمة وغيرها الكثير. يتم تقسيم الأعلام إلى 3 مجموعات: الدولة والسيطرة والنظام.


مؤشر الفريق (EIP - مؤشر التعليمات). يحتوي هذا السجل على عنوان التعليمات التي يجب إكمالها على النحو التالي إذا لم تكن هناك شروط أخرى.

سجلات القطاع (CS، DS، SS، ES، FS، GS). تم إملاء وجودهم في المجمع من خلال الإدارة الخاصة لذاكرة الوصول العشوائي لزيادة استخدامها في البرامج. شكرا لهم، كان من الممكن إدارة الذاكرة حتى 4 جيجابايت. في بنية Win32، اختفت الحاجة إلى شرائح، ولكن يتم الحفاظ على أسماء السجلات واستخدامها بشكل مختلف.

كومة

هذه منطقة ذاكرة مخصصة للإجراءات. ميزة المكدس هي أن أحدث البيانات المسجلة فيها قابلة للقراءة للقراءة. أو بمعنى آخر: يتم استرداد سجلات المكدس الأولى من قبل آخر. يمكنك تقديم هذه العملية كبرج من لعبة الداما. للحصول على مدقق (مدقق السفلي في قاعدة البرج أو أي في الوسط) يجب عليك أولا إزالة كل ما يكذب على القمة. وبناء على ذلك، وضع الأخير على البرج، عند إزالة تحليل البرج أولا. هذا مبدأ تنظيم الذاكرة والعمل معه يملي بمدخراته. يتم مسح المكدس باستمرار وفي كل مرة يستخدم فيها إجراء واحد.


المعرفات والأعداد الصحيحة والرموز والتعليقات والمعادين

يحتوي المعرف في مجال لغة البرمجة على نفس المعنى كما هو الحال في أي شيء آخر. يسمح باستخدام الحروف اللاتينية والأرقام والرموز "_" "،"، "،"، "،" @ "،" $ ". في هذه الحالة، تعتبر الحروف الكبيرة والصغيرة مكافئة، والنقطة يمكن أن تكون فقط حرف المعرف الأول.

في الأعداد الصحيحة في المجمع، يمكن الإشارة إلى المجمع في النظم المرجعية 2 و 8 و 10 و 16. سيتم اعتبار أي تسجيل آخر للأرقام كمبرج مجمع كمعرف.

يسمح باستخدام سجلات البيانات الرمزية لاستخدام كلا من النقاطين ونقلت. إذا كان صف الحرف يتطلب أحدهم، فإن القواعد هي كما يلي:

  • في الخلاف المبرم في القيمة الباسورية، يتم الإشارة إلى اقتباس مرة واحدة، والافتراضية - مرتين: "يمكن" أن تكون أو لا تكون "؛
  • على سبيل المثال محاط بالاقتباس، قاعدة عكس: يتم الإشارة إلى اقتباسات مكررة، يتم الإشارة إلى الفولاذات كما هي: "لا يمكن" أن "، شريطي المفضل لدي" "قطة سوداء" ".

لتحديد التعليق في لغة المجمع، يتم استخدام رمز الفاصلة المنقوص - "؛". يجوز استخدام التعليقات في بداية الخطوط وبعد الأمر. التعليق ينتهي بترجمة صف.

يستخدم توجيه التكافؤ بطريقة مماثلة كيف تشير التعبيرات المستمرة بلغات أخرى. يشار إلى التكافؤ بالطريقة التالية:

وبالتالي، في البرنامج، سيتم استبدال جميع الإدخالات بموقع، على الموقع الذي يجوز تحديد عدد صحيح أو عنوان أو سلسلة أو اسم آخر. يعتبر توجيه التوجيه مشابه لعملها على #Define في C ++.

توجيهات البيانات

كتبت لغات رفيعة المستوى (C ++، Pascal). وهذا هو، يستخدمون البيانات التي لها نوع معين، وهناك وظائف لمعالجتها، إلخ. في لغة البرمجة، لا يوجد مثل هذا المجمع. لا يوجد سوى 5 توجيهات لتحديد البيانات:

  1. DB - BYTE: حدد 1 بايت تحت المتغير.
  2. DW - Word: حدد 2 بايت.
  3. DD - كلمة مزدوجة: حدد 4 بايت.
  4. DQ - رباعية الكلمة: حدد 8 بايت.
  5. DT - عشرة بايت: حدد 10 بايت تحت المتغير.

الرسالة D يعني تحديد.

يمكن استخدام أي توجيه لإعلان أي بيانات ومصفوفات. ومع ذلك، لأسلوت فمن المستحسن استخدام DB.

بناء الجملة:

كمعامل، يجوز استخدام الأرقام والشخصيات وسؤال علامة - "؟"، تدل على المتغير دون تهيئة. النظر في أمثلة:

REAL1 DD 12.34 Char DB "C" AR2 DB "123456"، 0؛ صفيف من 7 بايت Num1 DB 11001001B؛ الرقم الثنائي Num2 DW 7777O؛ رقم Octal Numb3 DD -890D؛ الرقم العشري Num4 DD 0BEAH؛ عرافة عدد var1 dd؟ ؛ متغير دون القيمة الأولية ل AR3 DD 50 DUP (0)؛ صفيف من 50 تهيئة EL-TOV AR4 DQ 5 DUP (0، 1، 1.25)؛ مجموعة من 15 el-tov تهيئة بواسطة التكرار 0 و 1 و 1.25

الفرق (التعليمات)

بناء جملة أوامر المجمع أو تعليمات المجمع كما يلي.

:

أرسل عملك الجيد في قاعدة المعارف بسيطة. استخدم النموذج أدناه

سيكون الطلاب الطلاب الدراسات العليا، العلماء الشباب الذين يستخدمون قاعدة المعارف في دراساتهم وعملهم ممتنين لك.

مجمع برمجة اللغة

مقدمة

مجمع لغة البرمجة

تاريخ اللغة

برمجة في assmbler.

مزايا وعيوب اللغة

توربو مجمع (tash)

نظام مقاطعة البرنامج

آلية المقاطعة

عمل آلية المقاطعة

استنتاج

فهرس

طلب

مقدمة

حددت التقدم المحرز في تكنولوجيا الكمبيوتر عملية الظهور أنظمة جديدة مختلفة في أنظمة جديدة لتسجيل الخوارزميات - لغات البرمجة. هناك العديد من لغات البرمجة، لكننا سنركز على المجمع.

على الرغم من حقيقة أن المبرمج يمكن حاليا استخدام عدد كبير من لغات البرمجة أسهل بكثير من المجمع ومعرفة المجمع والقدرة على البرنامج لن يكون غير ضروري أبدا. تم تأكيد هذه الحقيقة الحجج التالية:

1. في لغات البرمجة الأخرى، ليس من الممكن دائما كتابة تطبيق تلبي تماما المتطلبات. وفي بعض الحالات أمر مستحيل تماما. في مجمع لغة البرمجة، يمكنك كتابة أي تطبيق.

2. في بعض الأحيان لا يمكن أن توفر لغات البرمجة عالية المستوى السرعة السرعة. والتطبيق الذي تم إنشاؤه على المجمع دائما سريع.

3. حجم التطبيقات التي تم إنشاؤها بلغات عالية المستوى لدي الكثير أكبرما التطبيقات التي تم إنشاؤها على المجمع.

4. تتيح لك لغة المجمع أن تعمل مباشرة مع الأجهزة، والتي في بعض الحالات تعطي مبرمج ميزة والنتيجة المطلوبة. يعمل التطبيق في اللغة الرفيعة المستوى مع أجهزة الأجهزة من خلال وحدات مكتوبة، I.E. لن تسمح للمبرمج بتغيير أي شيء، وبالتالي، للحصول على النتيجة المطلوبة.

5. معرفة المجمع اللغوي يعطي ميزة أكبر على أولئك الذين يقومون برامجهم فقط بلغات عالية المستوى. يعرف المجمع المعرفة هيكل الكمبيوتر، وهيكل أجهزة الأجهزة.

الغرض من العمل:

وصف لغة برمجة المجمع؛

تحديد الفوائد وأوجه القصور باللغة؛

وصف توربو مجمع؛

تعرف على آلية المقاطعة.

مجمع لغة البرمجة

مجمع التاريخ

لقد كان مبرمجون بالفعل على دراية بمفهوم البرنامج الفرعي: Grace Anvers وزملاؤها استخدموا برامج فرعية في هارفارد "Mark-1" خلال الحرب العالمية الثانية، لكن كل برنامج فرعي يحل مهمته الخاصة.

البرامج الفرعية هي الشظايا المستقلة لبرنامج الكمبيوتر تستخدم عدة مرات وتسبب في البرنامج الرئيسي إذا لزم الأمر. على سبيل المثال، يمكن لأحد الروتين الفرعي حساب الجذر التربيعي، والآخر سيجبر الكمبيوتر لعرض لتر.

كان لدى المتبرمون الأوائل دائما أجهزة كمبيوتر محمول مع تسجيل الروتينات الفرعية الأكثر استهلاكا حتى إذا لزم الأمر، لم تكن من جديد. كانت المشكلة هي أن عناوين تخطيط الأوامر والبرامج الفرعية المتغيرة في الذاكرة تختلف تبعا لوضعها في الأخير. إعداد الروتين الفرعي إلى مكان معين في الذاكرة، من الواضح أن الأتمتة اللازمة، ولأول مرة تم القيام به على "التعليم". بدأ مبرمجات كامبريدج مع كتابة مجموعة من الروتين الفرعي الموحد، والتي شكلت المكتبة. بعد ذلك، كان ذلك كافيا لإدخال أمر قصير فقط - وفعل الكمبيوتر كل العمل على إعداد ووضع البرنامج الفرعي داخل البرنامج.

تسمى MAURICE Wilks نظام الهروم ل "التعليم" ومكتبة التروتينات الفرعية إلى نظام التجميع (في نظام التجميع الإنجليزي - وبالتالي كلمة "المجمع")، لأنه جمع تسلسل الروتين الفرعي.

المجمع (من الإنجليزية. المجمع هو جامع - برنامج كمبيوتر، مترجم النص المصدر للبرنامج المكتوبة في لغة المجمع في لغة الجهاز.

غالبا ما يشار إلى لغة المجمع باللغة الروسية باسم مجمع. كما يطلق على المترجم من هذه اللغة عادة ببساطة المجمع، والتي في بعض الحالات يمكن أن تخلق الارتباك. غالبا ما يسمى عملية الإرسال من لغة المجمع في رمز الجهاز التجميع.

باستخدام مصطلح "لغة المجمع" يمكن أن يسبب رأي خاطئ بشأن وجود لغة واحدة مستوى منخفض أو على الأقل معيار لهذه اللغات التي لا تتوافق تماما مع الحقيقة. لذلك، عند تسمية لغة يتم كتابة برنامج معين، من المستحسن تحديدها، أي بنية مخصصة لها ومؤديها لهجة اللغة مكتوبة.

برمجة في assmbler.

المجمع هو لغة برمجة منخفضة المستوى، وهي تنسيق لأوامر تسجيل الجهاز، مريحة للإدراك من قبل الإنسان.

تتوافق أوامر لغة المجمع واحدة إلى أوامر المعالج، وفي الواقع، هي شكل رمزي مناسب لتسجيل الفرق وحججها. أيضا، توفر لغة المجمع تجريدات البرامج الأساسية: ملزمة أجزاء البرنامج والبيانات بعد العلامات مع أسماء رمزية والتوجيه.

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

كل طراز معالج، من حيث المبدأ، لديه مجموعة من الأوامر الخاصة به واللغة المناسبة (أو لهجة) من المجمع.

يمكن أن تكون برامج المجمع فعالة للغاية. من المبرمجين، بمساواة المهارات والقدرات العاملة في لغة المجمع، قم بإنشاء برنامج أكثر إحكاما وممتعا للغاية من نفس البرنامج المكتوبة بلغة رفيعة المستوى. انها تقريبا تقريبا لجميع البرامج الصغيرة أو المتوسطة. لسوء الحظ، كما يزيد حجم الحجم، يفقد برنامج المجمع جزءا من مزاياه. ويرجع ذلك إلى أن يكون الاهتمام ضروريا في برنامج المجمع بالتفصيل. كما ترون، تتطلب منك لغة المجمع تخطيط كل إجراءات كمبيوتر. في البرامج الصغيرة، يسمح لك بتحسين تشغيل البرنامج بأجهزة. في برامج كبيرة، قد يمنعك عدد كبير من العناصر من العمل بفعالية على البرنامج نفسه، حتى لو كان المكونات الفردية للبرنامج تتحول إلى أن تكون جيدة جدا. بالطبع، تلبي البرمجة في لغة المجمع لاحتياجات ليس كل برنامج.

البرامج في لغة المجمع دقيقة للغاية. نظرا لأن هذه اللغة تسمح للمبرمج بالعمل مباشرة مع جميع الأجهزة، يمكن لبرنامج المجمع القيام بما لا يتوفر لأي برنامج آخر. ليس هناك شك في أنه في أجهزة الإدخال / الإخراج في البرمجة، حيث تتحكم في التصريف الفردي لسجلات الجهاز، فإن البرمجة في لغة المجمع هي الخيار المناسب الوحيد.

من الواضح أن كفاءة ودقة لغة المجمع تعطي مزايا معينة. لكن تفصيلها يخلق بعض المشاكل. متى يجب أن أختار لغة مجمع للبرمجة؟

بالطبع، يجب عليك استخدام برامج المجمع عندما لا تكون هناك طريقة أخرى لكتابة برنامج. على سبيل المثال، كتب مبرمجات IBM باستخدام إجراءات المجمع كل أجهزة I / O لأجهزة الكمبيوتر IBM. لإدارة أجهزة الإدخال / الإخراج وأنظمة المقاطعة، كانت دقة لغة التجميع مطلوبة، والتي لا يمكن أن توفر أي لغة برمجة أخرى. وبالمثل، في لغة المجمع في IBM، تم كتابة الإجراءات التشخيصية، والتي يجب أن تحقق من كل جزء من المعدات.

كما أن لغة المجمع ضرورية أيضا في الحالات التي تكون فيها البرامج الرئيسية أداء البرنامج. قد يكون وقت التنفيذ الوقت أو حجم البرنامج النهائي. مكتبة الإجراءات الرياضية Fortran - مثال على البرنامج الذي يتطلب خصائص جيدةسواء من حيث الوقت والحجم. تعد الإجراءات الرياضية جزءا من أي برنامج حول FORTRAN، لذلك يجب أن يشغلوا مساحة صغيرة. بالإضافة إلى ذلك، يتم إدارة هذه الإجراءات من قبل الجميع الوظائف الرياضية في البرنامج الحريبي وغالبا ما تستخدم. وبالتالي، يجب أن يتم تنفيذها بسرعة.

ما البرنامج غير مناسب لأنظمة المجمع؟ بالطبع، يمكنك كتابة أي برنامج بشأنه، ومع ذلك، مع وجود برنامج كبير من الأفضل أن تعمل بلغة رفيعة المستوى، مثل C أو C #. تتيح لك هذه اللغات التركيز على مشكلتك. ليس عليك التعامل مباشرة مع الدلائل الدقيقة للأجهزة والمعالج. تسمح لك اللغات الرفيعة المستوى بالتراجع ورؤية الغابة وراء الأشجار.

عند البرمجة في لغة المجمع وفقط من خلال كتابة البرامج في هذا المستوى من التفاصيل، يمكنك فهم كيفية عمل السيارة عند أدنى مستوى. إذا كنت ترغب في معرفة الكمبيوتر، فيجب أن تكون على دراية بلغة المجمع. الطريقة الوحيدة لتحقيق ذلك: كتابة البرامج في هذه اللغة.

الأكثر شعبية اليوم هي حزم توربو المجمع (TASM) من Borland، Macro Assembler لنظام التشغيل Windows32 (MASM32)، الذي تم إنشاؤه بواسطة Hutch (بناء على شركة MASM القديمة Microsoft)، بالإضافة إلى المجمع المسطح (FASM) ومجمع Netwide (NASM) وضعت فريق تطوير فريق ناسم. توفر كل هذه المجمعين فرصا واسعة جدا للمبرمج. يمكنك كتابة البرامج تحت DOS وتحت Windows.

هناك أيضا العديد من أنواع المجمع الأخرى، وينمو عدد منها. على سبيل المثال: مجمع Codex Assembler و GEMMA SILLRO AISMBLER (LASM) ومجمع كسول (Lzasm) ومجمع الطاولة (TDASM) أو Newbasic ++ المجمع (NBASM) ومجمع TMA ماكرو، إلخ.

مزايا وعيوب اللغة

كرامة

عادة ما يتمكن مبرمج ماهرا من كتابة برنامج أكثر كفاءة على مجمع من تلك التي يتم إنشاؤها بواسطة المترجمين من لغات البرمجة عالية المستوى، أي لبرامج المجمع، تتميز باستخدام أمر أصغر وينداء في الذاكرة، مما يسمح لك بزيادة السرعة وتقليل حجم البرنامج.

ضمان الحد الأقصى للاستخدام لقدرات محددة من نظام أساسي معين، والذي يسمح لك أيضا بإنشاء برامج أكثر كفاءة مع تكاليف الموارد أقل.

عندما تكون البرمجة على المجمع، يمكن الوصول المباشر إلى المعدات، بما في ذلك منافذ الإدخال / الإخراج وسجلات المعالجات، إلخ.

يتم استخدام لغة المجمع لإنشاء برامج تشغيل الأجهزة ونباتات نظام التشغيل.

يتم استخدام لغة المجمع لإنشاء BIOS "البرامج الثابتة".

بمساعدة لغة المجمع، يتم إنشاء المترجمين المترجمين المترجمين الفوريين رفيعي المستوى، ويتم تنفيذ توافق المنصات.

هناك فرصة لدراسة البرامج الأخرى مع مفقود مصدر الرمز بمساعدة disarsembler.

سلبيات

يتم تسوية الميزة الرئيسية للمجمع بالكامل تقريبا عن طريق التحسين الجيد في محاميلات اللغة الحديثة رفيعة المستوى.

بحكم توجيه الجهاز الخاص بها (المستوى "المنخفض")، من الصعب قراءة أي شخص مقارنة بشبكة البرمجة الرفيعة المستوى وفهمها، فإنه يتكون من عناصر "صغيرة" للغاية - أوامر الآلات، وفقا للبرمجة والتصحيح معقدة، التعقيد ينمو، احتمال وجود أخطاء كبيرة. زيادة كبيرة في تعقيد التنمية المشتركة.

كقاعدة عامة، عدد أقل من المكتبات المتاحة لمقارنة لغات البرمجة الصناعية الحديثة.

لا توجد إمكانية قدرتها على البرامج على أجهزة الكمبيوتر مع نظام قياسي آخر أو نظام قيادة (باستثناء الثنائي المتوافق).

توربو مجمع. (tash.)

Borland Assembler's Turbo Asclembler هو مجمع متعدد الملفات مع دقة الروابط المتقدمة، وسرعة تجميع تصل إلى 48000 خط في الدقيقة (على جهاز كمبيوتر IBM PS / 2، نموذج 60) متوافق مع Microsoft MASM Macroassmbler وطريقة إضافية ل استخدم وضع بناء الجملة الموسعة. بغض النظر عن تجربتك في البرمجة، ستقدر بلا شك هذه الميزات، بالإضافة إلى عدد من الأموال الأخرى التي تسهل إلى حد كبير البرمجة على المجمع.

من بين هذه الأموال، يمكنك ذكر لفترة وجيزة ما يلي:

الدعم الكامل لمعالج 80386؛

تحسين أنواع النحوية من الأنواع؛

توجيهات تعريف القطاع المبسطة؛

تحسين إدارة الإدراج؛

توسيع تعليمات البوب \u200b\u200bوالدفع؛

مشغل المكالمات المتقدمة مع الحجج ومعلمة اللغة اختيارية؛

التسميات المحلية؛

المعرفات المحلية في حجج المكدس والاتصال في الإجراءات؛

الهياكل والجمعيات؛

التوجيهات المتداخلة؛

وضع Quirk، محاكاة MASM؛

تصحيح الأخطاء الكامل في المستوى المصدر باستخدام مصحح غريب الأطراف؛

مدمج في الأداة المساعدة التوليد عبر المراجع (TCREF)؛

ملفات التكوين وملفات الأوامر.

Turbo Assembler هو مجمع قوي يعمل مع سطر الأوامر الذي ينظر إلى ملفات المصدر الخاصة بك (الملفات مع امتداد *. ASM *) وإنشاء وحدات كائن منها (الملفات ذات الامتداد *. OBJ *). بعد ذلك، يمكنك استخدام برنامج Layout Borland Tlink. EXE، تميزت سرعة عالية تخطيطات، لتخطيط وحدات الكائنات التي تم الحصول عليها وإنشاء ملفات قابلة للتنفيذ (الملفات مع التمديد *. exe *).

تم تصميم Turbo Assembler للعمل مع معالجات 80x86 و 80 × 87 (مزيد من التفاصيل تشمل تعليمات المعالج سلسلة 80x86 / 80x87، الموصوفة في الكتيبات ذات الصلة من Intel).

توربو مجمع، بالإضافة إلى الدعم الكامل لمترجم مايكروسوفت، لديه ميزات إضافيةمجتمعة في الوضع اسمه المطورين المثاليين. يسمح استخدام هذا الوضع مبرمج المبتدئ بتطبيق نمط تطوير برنامج أكثر بصريا وبسيطا. يمكن للبرامج المتعبرين الأكثر خبرة على المجمع استخدام الوضع المثالي مثل الهياكل المدمجة والجمعيات.

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

إمكانية استخدام أسماء متطابقة لتعيين أعضاء الهياكل المختلفة؛

تطبيق المشغلين العالي والمنخفض؛

حساب أولية للتعبيرات؛

الإدارة الصحيحة لقطاعات البيانات مجتمعة في مجموعات؛

تحسين استخدام التوجيهات؛

استخدام معقول من الأقواس في التعبيرات.

ينقل توربو المجمع الحجج إلى الإجراءات الموجودة باللغات الرفيعة المستوى في إطار المكدس، ووضع الوسائط قبل الاتصال بالإجراءات إلى المكدس. الإجراءات المكتوبة باللغات الرفيعة المستوى قراءة الحجج من المكدس حسب الحاجة. عند إصدار الإجراء، قد يقوم بإزالة الوسائط من المكدس أو ترك هذه العملية لإجراءات التسبب.

بطريقة تقليدية، يتم دمج البرامج المكتوبة في C ++ والتجميع، عبارة عن تجميع فصل مع تخطيط لاحق لملف واحد قابل للتنفيذ. في هذه الحالة، يمكنك استخدام مترجم Borland C ++، الذي يستدعي توربو مجمع لبث برنامج المجمع.

يتضمن تطوير برنامج توربو المجمع أربع مراحل:

المرحلة الأولى. إعداد نص المصدر لبرنامج وتسجيله في النموذج ملف نصي (واحد أو أكثر) مع بعض المحرر بتنسيق DOS مع امتداد *. asm *.

المرحلة الثانية. تجميع البرنامج باستخدام مترجم Tasm، والنتيجة التي يكونها ملف الكائن مع التمديد *. obj *. عندما يتكون البرنامج من العديد من الملفات (الوحدات)، يتم تنفيذ تجميعها بشكل مستقل عن بعضها البعض. إذا تم اكتشاف الأخطاء في عملية الإرسال، فلن يتم إنشاء ملف الكائنات، ويتم تشكيل رسالة خطأ. يتم القضاء على الأخطاء، وبعد ذلك تكرر البث. لا يمكن تشغيل ملف الكائن (التمثيل الثنائي المشفر للبرنامج) إلى التنفيذ، لأنه لا يحتوي على معلومات حول تحميل شرائح البرامج في ذاكرة الكمبيوتر.

المرحلة الثالثة. يتم تخطيط البرنامج بواسطة رابط الرابط (محرر الروابط) Turbo Linker ويتم دمج وحدات الكائنات إلى ملف قابل للتنفيذ واحد مع تعيين عنوان بدء البرنامج. ملف تنفيذي. لديه امتداد *. إملف تنفيذى *. تحدد المراحل الثانية والثالثة عملية إعداد الملف التنفيذي للبرنامج يسمى الترجمة.

المرحلة الرابعة هي تصحيح برنامج باستخدام مصحح الأخطاء Turbo Debugger، والتي ستكون الأداة الرئيسية عند دراسة تنسيقات الأوامر، وترميزها، بالإضافة إلى عرض متغيرات البرامج في الذاكرة.

نظام مقاطعة البرنامج

واحدة من الاختلافات الأساسية للكمبيوتر من أي جهاز آخر هي أن جهاز الكمبيوتر قادر على الاستجابة للأحداث غير المتوقعة أثناء التشغيل. يتم توفير هذه القدرة باستخدام الخصائص الخاصة للكمبيوتر - جهاز المقاطعة. يسمح مقاطعة الكمبيوتر بتعليق أي من تأثيره الخاص والتبديل إلى آخر حسب ما يسبب هذا المقاطعة. على سبيل المثال، الضغط على المفتاح المقابل على لوحة المفاتيح.

القدرة على المقاطعة يحل، يبدو أنها أصعب مشكلة كفاءة جهاز الكمبيوتر الخاص بنا. من ناحية، نريد أن يشارك الكمبيوتر في هذا العمل الذي منحناه له. من ناحية أخرى، نحتاج إليها للرد على أي من فريقنا المقدمة، على سبيل المثال، باستخدام لوحة المفاتيح. إذا كان الكمبيوتر قادرا على عدم انتباهك إلا من خلال القيام بما تم تحديده مسبقا، فلن يتمكن من الإجابة على طلباتنا في الوقت المناسب، دون اتباع نشاط لوحة المفاتيح. للاستجابة للإشارات المرسلة من قبل لوحة المفاتيح، وكذلك الإشارات الأخرى التي تتطلب اهتماما بينما يكون الكمبيوتر مشغولا بعمل آخر، فإنه يسمح له بنظام المقاطعة.

يحتوي المعالج الدقيق لجهاز الكمبيوتر الخاص بنا على قدرة "خلقية" على المقاطعة، في حين أن لديها وسيلة موثوقة لتأجيل العمل الذي انقطع عنه. للقيام بذلك، استخدم كومة من المعالجات الدقيقة. عند حدوث انقطاع، يتم تخزين سجل ما فعله الكمبيوتر في هذه اللحظة في المكدس، لذلك عند الانتهاء من المقاطعة، يمكننا العودة إلى المكان الذي كان علينا انتباهنا. هذا هو واحد من عدة طرق لتطبيق كومة، لكن هذا هو الأكثر أهمية. بدون كومة، حيث يمكننا وضع معلومات التخزين حول العمل المنجز، يمكن تحقيق فكرة المقاطعة.

آلية المقاطعة

المقاطعة (المهندس المقاطعة) - إشارة تحكي المعالج عن حدوث أي حدث. في هذه الحالة، يتم تعليق تنفيذ تسلسل الأمر الحالي، ويتم نقل عنصر التحكم إلى معالج المقاطعة الذي يستجيب لحدث ويقدمه، وبعد ذلك يعيد التحكم في التعليمات البرمجية المقاطعة.

مقاطعة البرامج هي انقطاع متزامن يمكن أن ينفذ البرنامج باستخدام تعليمات خاصة.

لمعالجة الأحداث التي تحدث بشكل غير متزامن فيما يتعلق بالبرنامج هو الأنسب من الأنسب لآلية مقاطعة. يمكن اعتبار المقاطعة حدثا خاصا في النظام الذي يتطلب رد فعل فوري. على سبيل المثال، تستخدم أنظمة الموثوقية المحسنة المصممة بشكل جيد انقطاع حادث في شبكة التوريد لتنفيذ إجراءات تسجيل محتويات السجلات وذاكرة الوصول العشوائي إلى وسائط مغناطيسية بحيث يكون بعد استعادة الطاقة، كان من الممكن الاستمرار في العمل من نفس المكان.

يبدو من الواضح أن مجموعة متنوعة واسعة من الانقطاعات ممكنة لأسباب متنوعة. لذلك، تعتبر المقاطعة غير سهلا على هذا النحو: إنها توصل الرقم المسمى رقم النوع المقاطعة أو ببساطة رقم المقاطعة. مع كل رقم مقاطعة، يرتبط هذا الحدث أو هذا الحدث. يتمكن النظام من التعرف على النقطة التي حدثت، والتي حدثت رقمها، وتطلق الإجراء المقابل لهذا الرقم.

قد تسبب البرامج المقاطعات مع رقم معين. للقيام بذلك، يستخدمون الأمر int. هذه هي مقاطعات البرمجيات المزعومة. مقاطعات البرامج ليست غير متزامنة، كما هو سببها من البرنامج.

في معالجات الهندسة المعمارية X86، هناك دليل تعليمات INT، والحجة التي يكون رقم المقاطعة (من 0 إلى 255). تتم معالجة أجهزة الكمبيوتر المتوافقة مع VIBM PC Computers بعض المقاطعات بواسطة Subroutines BIOS المخزنة في ROM، وهذا يعمل كواجهة للوصول إلى خدمة BIOS. أيضا، يمكن أن تأخذ صيانة المقاطعة في BIOS من بطاقات الإرشاد (على سبيل المثال، بطاقات الشبكة أو الفيديو)، ونظام التشغيل وحتى البرامج العادية (التطبيقية) التي هي باستمرار في الذاكرة أثناء تشغيل البرامج الأخرى (برامج N. N. البرامج المقيمة) وبعد على النقيض من الوضع الفعلي، في الوضع المحمي من معالجات X86، لا يمكن للبرامج التقليدية الحفاظ على المقاطعات، هذه الوظيفة متاحة فقط لرمز النظام (نظام التشغيل).

تستخدم MS-DOS للتفاعل مع وحداتها وتطبيقات المقاطعة مع الأرقام من 20h إلى 3FH (يتم تقديم الأرقام في نظام أرقام سداسي عشري، كما هو أمر عرفي عند البرمجة في لغة مجمع X86). على سبيل المثال، يتم تنفيذ الوصول إلى المجموعة الرئيسية من وظائف MS-DOS عن طريق تنفيذ تعليمات INT INT 21H (في هذه الحالة، رقم الوظيفة وترسل حججه في السجلات). هذا التوزيع من أرقام المقاطعة غير ثابتة والأجهزة والبرامج الأخرى يمكن أن تحدد معالجات المقاطعات بدلا من أو أكثر من المعالجين الموجودين مثبتة من قبل MS-DOS أو البرامج الأخرى التي يتم استخدامها، كقاعدة عامة، لتغيير الوظيفة أو توسيع قائمة النظام المهام. أيضا، هذه الفرصة هي الفيروسات.

عمل آلية المقاطعة

يتم تحديد كل انقطاع محدد من قبل رقمه. على سبيل المثال، يحتوي الموقت ولوحة المفاتيح والطابعة عن رقم مقاطع خاص. بالنسبة لنظام الإدخال / الإخراج الأساسي، تنقسم برامج الخدمات الخاصة بها إلى مجموعات، ويتم إصلاح رقم مقاطعة واحد لجميع برامج المجموعة.

عند حدوث مقاطعة، يتم استخدام رقمها من الجدول لتمكين برنامج معالجة المقاطعة المناسب. قبل أن يبدأ هذا البرنامج عمله، فإن آلية المعالجات الدقيقة المسؤولة عن معالجة المقاطعات تترك المكدس حول كيفية إجراء العمل قبل مقاطعة. بعد ذلك، يتم تنفيذ برنامج معالجة المقاطعة.

يبدأ برنامج التعامل مع المقاطعة العمل، مما يجعل تدابير السلامة ضد مزيد من الانقطاعات الممكنة، إذا كان ينبغي إجراء عمليات مهمة للغاية أو معقدة، لا يمكن مقاطعةها. عادة ما تتضمن مثل هذه البرامج تغييرا في سجل القطاع الذي يتحكم في الوصول إلى الذاكرة إلى الذاكرة، بالإضافة إلى إدخال في كومة من معلومات الحالة الإضافية التي يجب حفظها والتي تم تسجيلها تلقائيا في بداية المقاطعة.

بعد إكمال عملياتهم، يمكن لبرنامج معالجة المقاطعة أن يعمل مرة أخرى أنواعا أخرى من المقاطعات والأداء العمل اللازموبعد عندما تنفد عمليات المقاطعة، يستعيد برنامج معالجة المقاطعة الحالة الأولية الآلات التي كانت عليها قبل مقاطعة، ويستمر الكمبيوتر في مقاطعة.

على سبيل المثال، النظر في البرنامج قابل للتنفيذ *. ملف exe، بعد بدء أي علم الدولة لروسيا تظهر بشكل دوري على الشاشة. فترة المظاهر حوالي 1 مرة في 2 ثانية (انظر الملحق). يحتوي هذا البرنامج على خوارزمية العمل التالية (الشكل 1):

نشر على http://www.allbest.ru/

تين. 1. خوارزمية عمل البرنامج.

يتم تطبيق الوصول إلى البرنامج إلى محرك الفيديو BIOS باستخدام مقاطعة INT 10H. عند العمل في وضع النص، تستخدم وظائف التشغيل التالية بشكل شائع:

02h - تعيين موضع المؤشر؛

03 - الحصول على موقف المؤشر؛

05h - تعيين تخزين الفيديو؛

06H - تهيئة أو التمرير فوق النافذة؛

07h - التهيئة أو التمرير أسفل النافذة؛

09H - سحب الشخصية وسمة إلى موضع المؤشر؛

0AH - عرض رمز في موقف المؤشر؛

0eh - عرض رمز في وضع Telelet؛

10H، 3H الفرعية الوظيفة - التبديل تومير / بيل سطوع؛

13H - عرض سلسلة في وضع Teleletype.

يتم إنشاء وظائف 06h و 07h في شاشة عرض محددة، يتم إنشاء نوافذ مستطيلة اللون من الحجم المحدد. إذا تم عرض أي نص في هذه النوافذ، فيمكن التمرير لأعلى ولأسفل باستخدام هذه الوظائف.

وظائف 09H، 0AH، 0EH و 13H تستخدم لعرض الشخصيات الفردية وأسلاسل الأحرف (في الدورة). يتم توفيره لإبرام نفس الرمز لعدد معين من المرات التي يمكن استخدامها عند إنشاء إطار عمل وغيرها من الحلي.

تستجيب وظيفة 0eh للسيطرة على الرموز عن طريق تنفيذ الإجراءات المناسبة. يتحرك المؤشر بعد إخراج كل رمز.

تم تصميم وظيفة 13H لعرض الصفوف مع سمات مثل كل حرف على حدة والصف بأكملها. يمكن إجراء الوظيفة في أربعة إصدارات اعتمادا على رمز الوضع المحدد في السجل.

عند عرض برنامج تشغيل BIOS إلى الشاشة، يجب أن تضع في اعتبارك أن المدخلات من لوحة المفاتيح CTRL / C لا تؤدي إلى إكمال البرنامج. من الضروري أن تخشى دورات الإخراج اللانهائية على الشاشة - إخراجها ممكن فقط عن طريق إعادة تشغيل الكمبيوتر.

إشارات مقاطعات الأجهزة الخارجية (من المؤقت، لوحة المفاتيح، الأقراص، إلخ) أدخل المعالج غير مباشرة، ولكن من خلال وحدة تحكم المقاطعة، والتي يتم استخدامها بواسطة رقاقة Intel 8259A. تتضمن معالجة المقاطعة الأجهزة بالضرورة إجراءات التحكم في وحدة تحكم المقاطعة. تنظيم نظام مقاطعة الأجهزة هو أن استنتاجات الأجهزة متصلة باستنتاجات المدخلات الثمانية من وحدة التحكم التي تنشأ عليها إشارات المقاطعة. يتم توصيل إخراج وحدة التحكم int بإدخال المعالج الدقيق من نفس الاسم. في الوقت نفسه، بالإضافة إلى إشارة INT، بدء إجراء المقاطعة في المعالج الدقيق، ينقل جهاز التحكم رقم المتجه نحو المعالج الدقيق على خطوط البيانات التي ينبغي من خلالها سبب برنامج معالجة المقاطعة المستلم. يتم تشكيل رقم متجه المرسلة في وحدة التحكم عن طريق إضافة الرقم الأساسي المسجل في أحد سجلاته، مع رقم الإدخال الذي تم استلام الطلب عند استلام الطلب. يتم إدخال رقم ناقل الأساسي في وحدة تحكم تلقائيا أثناء التمهيد الأولي للكمبيوتر. يتم برمجة وحدة التحكم من خلال المنافذ 20H و 21 ساعة. نظرا لأن هذا المتجه الأساسي يساوي 8، فإن أرقام المتجهات المرفقة بمقاطعة الأجهزة موجودة في 8H، ...، FH Range.

في حالتنا، من الضروري أيضا التفكير في المقاطعات الناجمة عن إشارات مؤقت النظام.

المقاطعات هي إجراءات جاهزة التي يدعو الكمبيوتر إلى إجراء مهمة محددة. هناك مقاطعات الأجهزة والبرامج. يتم بدء تقاطعات الأجهزة بواسطة المعدات أو مع لوحة النظام، أو من بطاقة تمديد. يمكن أن يكون سببها إشارة رقاقة الموقت، وهي إشارة من الطابعة، عن طريق الضغط على المفتاح على لوحة المفاتيح وأسباب أخرى كثيرة. لا يتم تنسيق مقاطعات الأجهزة مع عمل البرنامج. عند استدعاء المقاطعة، يترك المعالج عمله، ويقاطع المقاطعة، ثم يعود إلى المكان السابق. من أجل أن تكون قادرا على العودة بالضبط إلى اليمين، يتم تذكر مكان البرنامج، عنوان هذا المكان (CS: IP) على المكدس، إلى جانب سجل العلم. ثم في CS: IP يتم تحميل عنوان برنامج معالجة المقاطعة وإرساله للتحكم فيه. تسمى برامج معالجة المقاطعة أحيانا برامج تشغيل المقاطعة. يتم استكمالها دائما بواسطة تعليمات IDT (العودة من المقاطعة)، والتي تكمل العملية التي بدأت من خلال المقاطعة، وإرجاع قيم CS القديمة: سجل IP والعلم، وبالتالي إعطاء البرنامج القدرة على مواصلة التنفيذ من نفس الحالة. تستخدم جميع أجهزة ibm PCs رقاقة Timer 8253 (أو 8254) لتتناسب مع البقول من رقاقة ساعة النظام. يتم تحويل عدد دورات ساعة النظام إلى نبض واحد، وتحسب تسلسل هذه البقول لتحديد الوقت، أو يمكن إرسالها إلى مكبر الصوت في الكمبيوتر لتوليد صوت تردد معين. يحتوي Microcircuit 8253 على ثلاثة قنوات مستقلة متطابقة، كل منها يمكن برمجته. Microcircuit 8253 يعمل بشكل مستقل عن المعالج. البرامج المعالج الشريحة ثم تشير إلى حالات أخرى. وبالتالي، فإن 8253 يعمل على مدار الساعة في الوقت الفعلي - تعتبر نبضاتها بغض النظر عن ما يحدث في الكمبيوتر. ومع ذلك، فإن الفاصل الزمني الأقصى للبرمجة هو حوالي 1/12 ثانية. لحساب الفواصل الزمنية في الساعة والدقائق، هناك حاجة إلى بعض الوسائل الأخرى. لهذا السبب تتراكم النبضات من القناة الصفرية من رقاقة الموقت في متغير في منطقة بيانات BIOS. عادة ما يسمى هذه التراكم العد الوقت. 18. 2 مرات تتم معالجة إخراج القناة الثانية 0 بواسطة مقاطعة الأجهزة (مؤقت المقاطعة)، مما يمنع المعالج لفترة من الوقت ويزيد من عداد الوقت.

رقم 0 يتوافق مع منتصف الليل 12: 00؛ عندما يصل العداد إلى قيمة الساعة الرابعة المكافئة، تتم إعادة تعيينها إلى الصفر. هناك وقت آخر خلال اليوم يتم تحديده بسهولة من خلال تقسيم مؤشر العداد بحلول 18. 2 لكل ثانية. يستخدم عداد الوقت في معظم الأوقات المرتبطة بالوقت.

استنتاج

المجمع هو التناظرية الرمزية له لغة الجهاز. لهذا السبب، يجب أن يعكس البرنامج المكتوبة في المجمع جميع ميزات بنية المعالج الدقيق: تنظيم الذاكرة، طرق معالجة المعاملات، قواعد استخدام السجلات، وما إلى ذلك بسبب الحاجة إلى مراعاة مثل هذه الميزات، المجمع فريد من نوعه لكل نوع من المعالجات الدقيقة.

في هذه الدورة، فإن المادة النظرية على اللغة المنخفضة المستوى هي المجمع، ومزاياها وعيوبها، المراحل الرئيسية للبرمجة على المجمع. مبادئ معالجة المقاطعات وإخراجها وإدخالها في أوضاع رسومية ونصية، معالجة رسائل مؤقت النظام، وتنفذ خوارزمية لأداء المهمة، ويتم بث التعليمات البرمجية في الملف القابل للتنفيذ.

فهرس

Kasvands E. G. مقدمة في البرمجة في لغة المجمع. الجزء 1 - م.: يونيتسي - دانا، 2006.

يوروف ضد المجمع. دليل خاص. - سان بطرسبرج. : بيتر، 2007.

ما هو المجمع. [مورد إلكتروني]. - وضع وصول: http://www.assembler.webservis.ru.

فولين ألف لغات البرمجة. kn. 5 - م: مدرسة الصحافة، 2008.

Malyutin E. A. لغات البرمجة. - م.: التنوير، 2008.

لغة Abel P. المجمع ل IBM PC والبرمجة / لكل. من الانجليزية يو. V. سالكوفا - م؛ المدرسة العليا 2007 - 447 ص. : انا.

نحن برنامج على المجمع. [مورد إلكتروني]. - وضع وصول: http://www.kalashnikoff.ru.

zubkov s. v. المجمع ل DOS و Windows و UNIX. - م.: Infra-M، 2009.

Bogumirsky B. العمل الفعال على جهاز كمبيوتر IBM في نظام التشغيل Windows 95 SPB، بيتر، 2007.

يوروف خامسا، Khoroshko V. المجمع - دورة تدريبية. - سان بطرسبرج. : بيتر، 2007.

طلب

كود البرنامج

؛ MOV AX، البيانات؛ التهيئة

mOV DS، الفأس؛ تسجيل القطاع DS.

؛ قراءة وحفظ المحتويات الأصلية من المتجه 8

mOV Word PTR OLD_08H، BX

mOV Word PTR OLD_08H + 2، ES

؛ سنقوم بتثبيت معالج المقاطعة New_08H

mOV DX، أوفست new_08h

دفع DS؛ حفظ لوقت DS

دفع cs. سوف نرسل محتويات CS.

int 21h؛ استدعاء DOS (وظيفة 25 ساعة)

pOP DS؛ restat ds.

؛ إجراءات التخسيس يؤديها في غضون 3 S، مجرد برنامج التركيز

؛ الفرع الثاني للبرنامج تنشيط بعد 3 ق

؛ شريط أبيض

؛ شريط أزرق.

؛ الشريط الأحمر

mOV CS: الوقت، 20

؛ معالج المقاطعة التطبيق من الموقت،

؛ تفعيل 18، 2 مرات في الثانية

دفع الفأس حفظ اثنين المستخدمة

دفع BP. في معالج تسجيل

dEC CS: الوقت؛ تزيين الفاصل الزمني

jnz ostint؛ حتى 0، الخروج من المقاطعة

؛ محتويات الخلية الزمنية انخفضت إلى 0، أداء تبديل البرنامج

mOV BP، SP؛ BP \u003d كومة أعلى الحالية

mOV AX، زعنفة إزاحة؛ النزوح من نقطة الانتقال

mOV، الفأس؛ / أرسلها إلى المكدس لوضع IP

mOV AX، SEG FIN؛ / شريحة نقطة الانتقال

mOV، الفأس؛ / أرسلها إلى المكدس في مكان CS

outint: MOV AL، 20H؛ / فريق eoi في وحدة تحكم

خارج 20h، آل؛ / المقاطعة

MOV AX، 0600H؛ آه \u003d 06 (التمرير)، al \u003d 00 (ملء الشاشة)

MOV BH، 07؛ السمة العادية

MOV CX، 0000؛ المركز العلوي الأيسر

MOV DX، 184FH؛ انخفاض الوضع الصحيح

INT 10H؛ السيطرة في BIOS

MOV AH، 02؛ رقم الوظيفة

MOV BH، 00؛ رقم الصفحة

MOV DH، 00؛ رقم الصف

MOV DL، 00؛ رقم العمود

INT 10H؛ تثبيت المؤشر

بوب بي بي / إزالة كليهما

الفأس البوب. / السجل المحفوظ

udet / خارج المقاطعة

الوقت DW 20؛ / خلية لحساب الوقت

؛ / حقول البيانات

old_08H DD 0؛ / خلية لتخزين ناقل الأصلي

نشر على Allbest.ru.

...

وثائق مماثلة

    تطور لغات البرمجة من المستويات المنخفضة إلى العصر الحديث. لغات برمجة الجيل الثاني - المجمع. لغات الحتمية والعملية والمنطقية والموجهة نحو الكائنات. استقلال الجهاز. نماذج البرمجة.

    عرض تقديمي، وأضاف 14.10.2013

    دراسة بعض جوانب لغة المجمع والكمبيوتر ككل. بناء الخوارزميات لحل المهمة في لغات البرمجة SI، Assembler Mind و IBM PC. وضع برامج المخططات الموسيقية والكتابة على كل لغة من اللغات المدرجة.

    الدورات الدراسية، وأضاف 10/20/2014

    تعلم مجمع لغة منخفض المستوى لكتابة برنامج مثال لتطبيق 16 بت. تطوير وتنفيذ خوارزمية لتقديم الأرقام إلى درجة الأرقام عبر الحقل للقاعدة 2 (وزارة الدفاع 2). رسم توضيحي لإنشاء تقنية تطبيق DOS.

    العمل بالطبع، وأضاف 11/08/2011

    رموز الجهاز وتجميعها. أول لغة برمجة رفيعة المستوى. لغة البرمجة FORTRAN. مزايا وعيوب الجول. البرامج العلمية والمحاسبة. المبادئ الأساسية التي تم احترامها عند إنشاء لغة برمجة أساسية.

    دورة العمل، وأضاف 06/21/2014

    لغة البرمجة كنظام علامة رسمية مصممة لتسجيل البرامج. Refrali ككلغة خوارزمية للوظائف العودية. ركزت LISP كمجمال على العمل مع هياكل القائمة. مقدمة: مفهوم، الأصول الثابتة.

    عرض تقديمي، وأضاف 22.02.2014

    ميزات المجمع - لغة موجهة نحو الجهاز المستخدمة في إنشاء تطبيقات بسيطةوبعد برامج ملزمة بلغات مختلفة. تنسيق نموذجي لأوامر التسجيل والإرشادات وتوجيهات لغة المجمع. تطوير لعبة "ثعبان".

    دورة العمل، وأضاف 07/20/2014

    خصائص لغات البرمجة: قصة قصيرة، التسلسل الزمني. الأنواع الرئيسية لغات البرمجة: مجمع؛ بايسي. إنشاء واستخدام الصيغ في Excel. تطبيق المشغلين في الصيغ. باستخدام وظائف في Excel. موقع عطلة المنزل.

    تقرير الممارسة، وأضاف 06/03/2011

    أدخل وتخرجات باستخدام الوحدة النمطية المتصلة IO. ميزات العمل مع صفائف ذاتية الأبعاد وثنائية الأبعاد. اختبار حالة الأعلام. rrincips والمهارات مع المترجم والوسط. تطوير مخطط خوارزمية البرنامج في المجمع.

    الدورات الدراسية، وأضاف 02.12.2009

    دراسة ميزات نظام التشغيل، مجموعة من البرامج التي تتحكم في تشغيل برامج التطبيق و تطبيقات النظاموبعد أوصاف الهندسة المعمارية وبرامج أنظمة التشغيل الحديثة. مزايا مجمع لغة البرمجة.

    عرض تقديمي، إضافة 04/22/2014

    المجمع كناظرية رمزية لغة الجهاز. المعالجة الدقيقة العمارة: مؤسسة الذاكرة، طرق معالجة المعامل، سجل استخدام القواعد. نص البرنامج. مراحل البرمجة على المجمع، خوارزميات تنفيذ المهام.

assmbler (ASM، المجمع)؛ من الانجليزية. تجميع - جمع، جبل) - لغة البرمجة منخفضة المستوى، البرنامج المساعد كجزء من نظام التشغيل لنقل البرنامج المصدر تلقائيا المراد تنفيذه على الكمبيوتر، على لغة الجهاز؛ نوع المترجم. تعكس مفاهيم المجمع بنية آلة الحوسبة الإلكترونية. المجمع هو شكل رمزي لدخول لغة الماكينة، ويستخدم استخدام برامج آلة الكتابة. لنفس الكمبيوتر، يمكن تطوير لغات مختلفة من المجمع. على عكس اللغات الرفيعة المستوى، فإن مشاكل الخوارزميات المنفذة مخفية من المطورين، وترتبط لغة المجمع ارتباطا وثيقا بنظام أمر الكمبيوتر. يوفر المجمع إمكانية الوصول إلى التسجيل، وتحديد طرق معالجة وأوصاف العمليات من حيث أوامر المعالج. قد تحتوي على مستوى أعلى: أوامر ماكرو مدمجة ومحددة التي تتطابق مع أوامر آلات متعددة، واختيار الأوامر التلقائي حسب نوع المعاملات، أوصاف هياكل البيانات.

ميزات المجمع

كما يسمي المجمع المحول البرمجي من لغة المجمع إلى أوامر لغة الماكينة. اسم آخر من مثل هذا المترجم - mnemocode. الغرض منه هو عرض تقديمي في شكل رموز أوامر الجهاز المريحة (مآكل)، يضمن الاستخدام الفعال لموارد النظام (المعالج، الذاكرة، المحيط). يستخدم Motocode في الأماكن التي تكون فيها السرعة مطلوبة، تقتصر على حجم ذاكرة الوصول العشوائي. يسمى المجمع أيضا نظام أمر المعالج المركزي.

تحت كل بنية المعالج وتحت كل نظام تشغيل يوجد مجمع خاص به. تسمح المجمعين عبر المجمعين باستخدام آلات مع بنية واحدة لتجميع البرامج بنية أخرى أو نظام تشغيل آخر. يوفر المجمع إمكانية الوصول إلى التسجيل، وتحديد طرق معالجة وأوصاف العمليات من حيث أوامر المعالج. قد يحتوي المجمع على أدوات رفيعة المستوى: وحدات ماكرو مدمجة ومحددة، مما يتوافق مع أوامر متعددة الآلات، واختيار الأوامر التلقائي اعتمادا على أنواع المعاملات، أوصاف هيكل البيانات.

تتوافق أوامر لغة المجمع مع أوامر المعالج وهي شكل رمزي لأوامر ووسائط تسجيل. توفر لغة المجمع ملزئة لأجزاء البرنامج والبيانات بعد إجراء العلامات أثناء التجميع (لكل علامة، يتم حساب العنوان، وبعد استبدال كل إدخال من التسمية بهذا العنوان). نظرا لأن أنظمة قيادة المعالج الدقيق تختلف، فإن كل معالج يحتوي على مجموعة من الأوامر الخاصة به في لغة المجمع ومجمعات المجمع الخاصة به.

عادة، تتم كتابة برامج أو أقسام التعليمات البرمجية في لغة المجمع في الحالات التي يحتاجها المطور إلى تحسين السرعة (عند إنشاء برامج تشغيل) وحجم التعليمات البرمجية. تسمح معظم الجمعيات بالدمج في نفس البرنامج، رمز مكتوب بلغات برمجة مختلفة. يتيح لك ذلك كتابة برامج معقدة باستخدام لغة رفيعة المستوى، دون فقدان السرعة في المهام الحرجة، باستخدام الأجزاء المكتوبة في لغة المجمع. يتم تحقيق الجمع عن طريق إدخال شظايا في لغة المجمع لنص البرنامج (توجيهات اللغة الخاصة) أو إجراءات الكتابة في لغة المجمع. يتم استخدام هذه الطريقة لتحولات البيانات البسيطة، ولكنها لا تنطبق في رمز المجمع الكامل الكامل مع البيانات والبرامج الفرعية مع العديد من المدخلات والمخرجات غير المدعومة من قبل لغات رفيعة المستوى.

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

لغة برمجة

المجمع هو لغة برمجة منخفضة المستوى، وهي تنسيق لأوامر الجهاز التسجيل، مريحة للتصور البشري.

تتمثل أوامر لغة المجمع هي واحدة في المرء تتوافق مع فرق المعالج، وفي الواقع، هي شكل رمزي مناسب للتسجيل (Mnemocoled) للأوامر وحججها. أيضا، توفر لغة المجمع تجريدات البرامج الأساسية: ملزمة أجزاء البرنامج والبيانات بعد العلامات مع أسماء رمزية والتوجيه.

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

كل طراز معالج، من حيث المبدأ، لديه مجموعة من الأوامر الخاصة به واللغة المناسبة (أو لهجة) من المجمع.

المميزات والعيوب

  • الحد الأدنى لمبلغ الرمز الزائد (استخدام عدد أصغر من الأوامر والمراجع إلى الذاكرة). نتيجة لذلك - عالية السرعة وحجم البرنامج الأصغر
  • أحجام رمز كبير، رقم ضخم مهام طفيفة إضافية
  • قراءة شفاء الرموز، دعم الصعوبة (تصحيح الأخطاء، إضافة فرص)
  • صعوبة تنفيذ نماذج البرمجة وأي اتفاقيات أخرى معقدة، تعقيد التنمية المشتركة
  • عدد أقل من المكتبات المتاحة، توافقها الصغير
  • الوصول المباشر إلى المعدات: منافذ الإدخال / الإخراج، سجلات المعالج الخاص
  • القدرة على كتابة رمز التعديل الذاتي (I.E. metaprogramming، ودون الحاجة إلى مترجم البرمجيات)
  • الحد الأقصى "المناسب" للمنصة المرغوبة (استخدام التعليمات الخاصة، والميزات الفنية "حديد")
  • عدم التسامح مع منصات أخرى (باستثناء متوافق ثنائي).

بناء الجملة

المعيار المقبول عموما لمناء بناء لغات المجمع غير موجود. ومع ذلك، هناك معايير فعليا - النهج التقليدية التي تلتزم بها معظم مطوري المجمع. معايير المعلومات الرئيسية هي Intel-Syntax و AT & T-Syntax.

التنسيق العام لتعليمات التسجيل هو نفسه لكلا المعيارين:

`[العلامة:] Opcode [المعاملات] [؛ التعليق]`

المظهر هو تعليمات مذكرات مباشرة للمعالج. يمكن إضافة البادئات (التكرار والتغييرات مثل العنوان، وما إلى ذلك) إليها. نظرا لأن المعاملات والثوابت وأسماء التسجيل والعناوين في ذاكرة الوصول العشوائي، إلخ. هناك اختلافات بين Intel و AT & T معايير المعايير هي أساسا ترتيب نقل المعاملات وبناء الجملة مع طرق معالجة مختلفة.

عادة ما تكون المنحجرة المستخدمة هي نفسها هي نفسها لجميع معالجات بنية واحدة أو عائلة من المهندسين المعماريين (من بين المعالم المعروفة من المعالجات وأجهزة التحكم موتورولا، الذراع، X86). يتم وصفها في مواصفات المعالج.

على سبيل المثال، ورث معالج Zilog Z80 نظام أمر Intel I8080، وسعته وتغيير المنخر (وتسجيل التسجيل) بطريقتهم الخاصة. على سبيل المثال، قمت بتغيير Intel Mov On LD. موتورولا معالجات كرة نارية ورثت نظام أمر Z80، وقطعها. في الوقت نفسه، عاد موتورولا رسميا إلى Intel Mnemonics. وفي الوقت الحالي، يعمل نصف المجمع ل Fireball مع Intel Mecnemonics، ونصف مع أسنان الخراس Zilog.

التوجيه

بالإضافة إلى التعليمات، قد يحتوي البرنامج على توجيهات: الأوامر التي لا يتم إرسالها مباشرة إلى تعليمات الجهاز، ومديرو المحول البرمجي. سوف تختلف المجموعة والبناء بالجملة بشكل كبير وتعتمد على ليس من منصة الأجهزة، ولكن من الترجمة المستخدمة (توليد لهجات لغات داخل عائلة واحدة من الهندسة). كإجراء مجموعة، يمكن تخصيص التوجيهات:

  • تحديد البيانات (الثوابت والمتغيرات)
  • إدارة مؤسسة المنظمة في معلمات ملف الذاكرة والإخراج
  • طريقة تشغيل المحول البرمجي
  • جميع أنواع التجريدات (I.E.، عناصر اللغات الرفيعة المستوى) - من تسجيل الإجراءات والوظائف (لتبسيط تنفيذ نموذج البرمجة الإجرائية) إلى الهياكل والدورات الشرطية (للنماذج البرمجة الهيكلية)
  • وحدات الماكرو

الأصل والنقد لمصطلح "مجال المجمع"

تلقى هذا النوع من اللغات اسمه من اسم المترجم (مترجم) من هذه اللغات - المجمع (المهندس المجمع - جامع). يرجع اسم الأخير إلى حقيقة أنه لم تكن هناك لغات أعلى مستوى أعلى على أجهزة الكمبيوتر الأولى، وكان البديل الوحيد لإنشاء البرامج باستخدام المجمع برمجة مباشرة في الرموز.

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

يمكن أن يؤدي استخدام مصطلح "لغة المجمع" أيضا إلى رأي خاطئ بشأن وجود لغة مستوى منخفضة واحدة، أو على الأقل معيار لهذه اللغات. عند تسميته باللغة التي يتم فيها كتابة برنامج معين، من المستحسن تحديدها، من أجله هو العمارة المقصود وعلى لهجة اللغة المكتوبة.

عناصر بناء الجملة:

أمثلة:

مرحبا بالعالم!

مثال لإصدارات Intel X86 (IA32)

mOV AX، CS MOV DS، AX MOV MOV AH، 9 MOV DX، OFFSET HELLO INT 21H XOR AX، AX INT 21H Hello: DB "Hello World!"، 13، 10، "$"

مرحبا بالعالم!

مثال لإصدارات AMIGA

يتحرك. L #DOS تتحرك. L 4. W، A6 JSR - 0198 (A6)؛ الخطوة القديمة. l d0، a6 beq. س. خطوة خارج. L #helloworld، D1 A) Mawq # 13، D2 JSR - $ 03AE (A6)؛ Writechars B) JSR - 03B4 $؛ خطوة putstr. L A6، A1 تتحرك. L 4. W، A6 JSR - 019E $ (A6)؛ closeLibrary. خارج RTS DOS DC. ب "dos.library"، 0 HelloWorld DC. ب "مرحبا العالم!" ، $ a، 0

مرحبا بالعالم!

مثال للإصدارات من atarist

يتحرك. L #helloworld، - (A7) نقل رقم 9، - (A7) مصيدة # 1 Addq. L # 6، A7 Move # 0، - (A7) مصيدة # 1 Helloworld: DC. ب "مرحبا العالم!"، 0D 0D، $ 0A، 0

مرحبا بالعالم!

مثال لإصدارات Intel X86 (IA32)

يستخدم NASM Linux من قبل بناء جملة Intel. تجميع وربط:

  • nASM -F ELF -O HELLO.O HELLO.AST
  • lD -O مرحبا hello.o

القطاع الثامن. البيانات MSG DB "Hello، World!"، 0xa Len Eque $ - MSG. النص العالمي _start _start:؛ نقطة الدخول MOV EAX، 4؛ "كتابة" دعوة النظام MOV EBX، 1 MOV ECX، MSG؛ مؤشر إلى البيانات MOV EDX، Len؛ كمية البيانات INT 0x80؛ استدعاء Core MOV EAX، 1؛ "_EXIT" اتصل بنظام MOV EBX، 0؛ عودة 0 (كل شيء جيد) Int 0x80؛ استدعاء kernel.

مرحبا بالعالم!

مثال لإصدارات PDP-8

/ - تعليقات.

/ مرحبا العالم على المجمع لمدة ديسمبر PDP - 8 * 200 مرحبا، CLA CLL TLS / TLS يحدد علم الطباعة. TAD charac / يخلق سجل مؤشر DCA IR1 / لتلقي أحرف TAD M6 / تكوين العداد لشخصيات DCA Count / Evance. التالي، TAD I IR1 / احصل على رمز. نوع JMS / نوعها. ISZ عدد / القيام بشيء آخر؟ JMP التالي / لا، أدخل نوع حرف آخر HLT، 0 / اكتب TSF JMP JMP Subroutine. - 1 TLS CLA JMP I TYPER charac. / تستخدم كقيمة الأولية IR1. 310 / H 305 / E 314 / L 314 / L 317 / O 254 /، 240/327 / W 317 / O 322 / R 314 / L 304 / D 241 /! M6، - 15 عدد، 0 IR1 \u003d 10 دولارات

مرحبا بالعالم!

مثال لإصدارات PDP-11

يتم كتابة البرنامج على Macroassembler Macro-11 لتجميع وتشغيل هذا البرنامج في أمر OS RT-11:

ماكرو مرحبا.

تم اكتشاف الأخطاء: 0

رابط مرحبا - رابط. تشغيل مرحبا - تشغيل

العنوان مرحبا العالم؛ اسم. mcall. ttyout،. الخروج مرحبا :: MOV #MSG، R1؛ العنوان الأولي للسلسلة $ 1: movb (r1) +، r0؛ نحصل على رمز BEQ الإجراء التالي؛ إذا صفر، فهناك من الدورة. ttyout؛ طباعة رمز BR 1 $؛ كرر الدورة القيام به :. الخروج من MSG :. ASCIZ / HELLO، العالم! /؛ سلسلة مرحبا، العالم! وبعد نهاية مرحبا؛ نهاية برنامج HELLO

مرحبا بالعالم!

مثال لإصدارات النظام / 360، النظام / 370

IBM System / 360/370/390 لغة المجمع الأساسية.

// exec تجميع البدء الرئيسية balr 2، 0 باستخدام *، 2 مفتوحة الطباعة MVC BUF، HW وضع طباعة إغلاق طباعة EOJ HW DC CL132 "Hello World" BUF DS CL132 طباعة DTFPR IOAREA1 \u003d BUF، Devaddr \u003d Syslst، Blksize \u003d 132، * جهاز \u003d 3203، التحكم \u003d نعم، printov \u003d نعم النهاية الرئيسية / * // exec lnkedt // exec / * / &

مرحبا بالعالم!

مثال لإصدارات Apple II

* مرحبا العالم ل 6502 أبل] [* ******************************** التشويه يساوي $ db3a ldy #\u003e مرحبا lda #< HELLO JMP STROUT HELLO ASC "HELLO WORLD !", 00

مرحبا بالعالم!

مثال لإصدارات PDP-10

Chttyo - يتم تنفيذ جميع المدخلات / الإخراج باستخدام قنوات I / O. من الأفضل أن تجعل أسماء رمزية لتلك القنوات التي تستخدمها، وتبدأ بها في الفصل. حدد هذه الأسماء باستخدام مشغل MIDAS \u003d\u003d.

CALL هو تعيين رمزي لاستدعاء مكالمة النظام. تنسيقه: .call.

افتتح فتح قناة الإدخال / الإخراج للاستخدام. يتطلب اثنين من المعلمات - رقم القناة واسم الجهاز في Sixit.

الخسارة٪ LSFIL هي مكالمة نظام تطبع رسالة خطأ الإدخال / الإخراج إذا حدث ذلك فجأة.

IOT هي مكالمة نظام تعمل بالفعل في الإدخال / الإخراج. كمعلمة، تحتاج إلى تحديد القناة والعنوان الذي يحتوي على رمز الرمز للإخراج. على سبيل المثال، "H يمثل H.

العنوان printhello a \u003d 1 chttyo \u003d\u003d 1؛ قناة للإخراج. بداية :؛ فتح قناة tty. وبعد دعوة [setz؟ sixit / open / [. UAO، Chttyo]؟ [sixit / tty /] ((setz))]. تفقد٪ Lsfil. IOT Chttyo، ["H]؛ طباعة Hello World Symbol .. iot Chttyo، [E]. IOT Chttyo، ["L]. iot chttyo، [l]. iot chttyo، [o]. iot chttyo، [^ m]؛ رمز سلسلة جديدة وبعد IOT Chttyo، ["W]. iot chttyo، [" o]. IOT Chttyo، ["r]. iot chttyo، [l]. IOT Chttyo، [D]. القيمة؛ البرنامج، توقف :) بداية نهاية

أرقام فيبوناتشي:

مثال لإصدارات MIPS32

المريخ المحاكي. خاتمة Mars Console:

أرقام فيبوناتشي هي: 1 1 2 3 5 8 13 21 34 55 89 144 - انتهى البرنامج -

يعرض البرنامج 15 أرقام فيبوناتشي. يمكن تغيير عدد الأرقام في القسم.داتا.

مساحة البيانات :.AscIiz "" Head: .asciiz "أرقام فيبوناتشي هي: \\ n" FIB:. الكلمة 0: 15 الحجم :.word 15 .text الرئيسية: LA $ T0، FIB LA $ T5، الحجم LW $ T5، 0 ($ T5) LI $ T2، 1 add.d $ f0، $ f2، $ F4 SW $ T2، 0 ($ T0) SW $ T2، 4 ($ T0) ADDI $ T1، $ T5، - 2 حلقة: LW $ T3، 0 ($ T0) LW $ T4، 4 ($ T0) أضف $ T2، $ T3، $ T4 SW $ T2، 8 ($ T0) ADDI $ T0، $ T0، 4 ADDI $ T1، $ T1، - 1 BGTZ $ T1، حلقة LA $ A0، FIB نقل $ A1، $ T5 Jal طباعة لي $ v0، 10 syscall الطباعة: أضف $ t0، $ صفر، A0 $ Add $ T1، $ صفر، $ A1 LA $ A0، رئيس LI $ v0، 4 syscall خارج: LW $ A0، 0 ($ T0) $ v0، 1 syscall la a0، space li $ v0، 4 syscall addi li v0، 1 la $ a0، ($ t2) syscall la $ a0، string1 li $ v0، 4 syscall mult $ t1، $ t2 mflo $ T1 LI $ V0، 1 LA $ A0، ($ T1) SYSCALL LA $ A0، String2 Li $ V0، 4 Syscall Addiu $ T2، $ T2، 1 BEQ $ T2، 16، Endloop J حلقة Endloop: Li $ v0، 10 syscall.