8086 برامج لغة التجميع البسيطة مع شرح

جرب أداة القضاء على المشاكل





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

برمجة مستوى التجميع 8086

برمجة مستوى التجميع 8086



برمجة مستوى التجميع 8086

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


أجهزة المعالج

أجهزة المعالج



8086 هندسة المعالج

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

8086 هندسة المعالج

8086 هندسة المعالج

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

سجلات الأغراض العامة : تتكون وحدة المعالجة المركزية 8086 من 8 سجلات للأغراض العامة وكل سجل له اسمه الخاص كما هو موضح في الشكل مثل AX و BX و CX و DX و SI و DI و BP و SP. هذه كلها سجلات 16 بت حيث يتم تقسيم أربعة سجلات إلى جزأين مثل AX و BX و CX و DX والتي تُستخدم بشكل أساسي للاحتفاظ بالأرقام.

سجلات الأغراض الخاصة : تتكون وحدة المعالجة المركزية 8086 من 2 - سجلات وظائف خاصة مثل IP وسجلات العلم. يشير سجل IP إلى تعليمات التنفيذ الحالية ويعمل دائمًا على التجميع مع سجل شريحة CS. تتمثل الوظيفة الرئيسية لسجلات العلم في تعديل عمليات وحدة المعالجة المركزية بعد اكتمال الوظائف الميكانيكية ولا يمكننا الوصول إليها مباشرة
سجلات المقطع: تتكون وحدة المعالجة المركزية 8086 من سجلات ذات 4 مقاطع مثل CS و DS و ES و SS والتي تُستخدم بشكل أساسي لتخزين أي بيانات في سجلات المقطع ويمكننا الوصول إلى كتلة من الذاكرة باستخدام سجلات المقطع.


برامج لغة التجميع البسيطة 8086

برمجة لغة التجميع 8086 لديها بعض القواعد مثل

  • مستوى التجميع برمجة 8086 يجب كتابة الرمز بأحرف كبيرة
  • يجب أن تكون التصنيفات متبوعة بنقطتين ، على سبيل المثال: التسمية:
  • يجب أن تبدأ جميع الملصقات والرموز بحرف
  • يتم كتابة جميع التعليقات بأحرف صغيرة
  • يجب إنهاء السطر الأخير من البرنامج بالتوجيه END

تحتوي معالجات 8086 على تعليمتين أخريين للوصول إلى البيانات ، مثل WORD PTR - للكلمة (وحدتي بايت) ، BYTE PTR - للبايت.

Op-Code والمعامل

Op-Code والمعامل

كود التشغيل: يُطلق على التعليمات الفردية رمز التشغيل الذي يمكن تنفيذه بواسطة وحدة المعالجة المركزية. هنا يتم استدعاء تعليمات 'MOV' كرمز تشغيلي.

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

8086 برامج لغة تجميع المعالجات الدقيقة

اكتب برنامجًا لقراءة حرف من لوحة المفاتيح

MOV ah ، 1 ساعة // البرنامج الفرعي لإدخال لوحة المفاتيح
INT 21h // إدخال حرف
// حرف مخزن في القاعدة
MOV c ، al // نسخ الحرف من alto c

اكتب برنامجًا للقراءة وعرض الشخصية

MOV ah ، 1 ساعة // البرنامج الفرعي لإدخال لوحة المفاتيح
INT 21h // قراءة الحرف في al
MOV dl ، al // نسخ الحرف إلى dl
MOV ah ، 2 ساعة // البرنامج الفرعي لإخراج الأحرف
INT 21h // عرض الحرف في dl

اكتب برنامجًا باستخدام سجلات الأغراض العامة

100 ساعة ORG
MOV AL، VAR1 // تحقق من قيمة VAR1 بنقلها إلى AL.
LEA BX ، VAR1 // احصل على عنوان VAR1 في BX.
MOV BYTE PTR [BX] ، 44h // تعديل محتويات VAR1.
MOV AL، VAR1 // تحقق من قيمة VAR1 بنقلها إلى AL.
حق
VAR1 DB 22h
نهاية

اكتب برنامجًا لعرض السلسلة باستخدام وظائف المكتبة

تشمل emu8086.inc // تصريح ماكرو
100 ساعة ORG
اطبع 'Hello World!'
جوتوكسي 10 ، 5
PUTC 65 // 65 - هو رمز ASCII لـ 'A'
PUTC 'ب'
RET // العودة إلى نظام التشغيل.
END // التوجيه لإيقاف المترجم.

تعليمات الحساب والمنطق

تم فصل العمليات الحسابية والمنطقية 8086 إلى ثلاث مجموعات مثل عملية الجمع والقسمة والزيادة. معظم تعليمات الحساب والمنطق تؤثر على سجل حالة المعالج.

البرمجة بلغة التجميع 8086 تكون فن الإستذكار في شكل كود op-code ، مثل MOV ، MUL ، JMP ، وما إلى ذلك ، والتي تُستخدم لأداء العمليات. برمجة لغة التجميع 8086 أمثلة

إضافة
ORG0000h
MOV DX ، # 07H // انقل القيمة 7 إلى السجل AX //
MOV AX ، # 09H // انقل القيمة 9 إلى المجمع AX //
أضف AX، 00H // أضف قيمة CX بقيمة R0 وقم بتخزين النتيجة في AX //
نهاية
عمليه الضرب
ORG0000h
MOV DX ، # 04H // انقل القيمة 4 إلى السجل DX //
MOV AX ، # 08H // انقل القيمة 8 إلى المجمع AX //
MUL AX، 06H // يتم تخزين النتيجة المضاعفة في Accumulator AX //
نهاية
الطرح
ORG 0000 ساعة
MOV DX ، # 02H // انقل القيمة 2 لتسجيل DX //
MOV AX ، # 08H // انقل القيمة 8 إلى المجمع AX //
SUBB AX، 09H // يتم تخزين القيمة الناتجة في Accumulator A X //
نهاية
قسم
ORG 0000 ساعة
MOV DX ، # 08H // انقل القيمة 3 لتسجيل DX //
MOV AX ، # 19H // انقل القيمة 5 إلى المجمع AX //
DIV AX، 08H // القيمة النهائية مخزنة في Accumulator AX //
نهاية

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