8086 Assembly Language Tutorial

From binaryoption
Jump to navigation Jump to search
Баннер1

```wiki

8086 لغة التجميع: دليل تعليمي للمبتدئين

مقدمة

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

بنية معالج 8086

قبل البدء في تعلم لغة التجميع، من المهم فهم بنية معالج 8086. يتكون المعالج من عدة مكونات رئيسية:

  • وحدات المعالجة المركزية (CPU): تتولى تنفيذ التعليمات.
  • السجلات (Registers): أماكن تخزين صغيرة وسريعة داخل المعالج تستخدم لتخزين البيانات والتعليمات. هناك أنواع مختلفة من السجلات، منها:
   *   سجلات البيانات (Data Registers): مثل AX, BX, CX, DX. تستخدم لتخزين البيانات.
   *   سجلات المؤشرات والمعدلات (Pointer & Index Registers): مثل SP, BP, SI, DI. تستخدم للإشارة إلى مواقع الذاكرة.
   *   سجلات التحكم (Control Registers): مثل CS, DS, SS, ES. تستخدم للتحكم في عمليات الوصول إلى الذاكرة.
   *   سجل العلم (Flag Register): يحتوي على علامات تشير إلى نتائج العمليات الحسابية والمنطقية.
  • الذاكرة (Memory): تستخدم لتخزين البيانات والبرامج.
  • ناقل العنوان (Address Bus): ينقل عناوين الذاكرة.
  • ناقل البيانات (Data Bus): ينقل البيانات.

بنية برنامج التجميع

برنامج التجميع 8086 يتكون من سلسلة من التعليمات، كل تعليمة تقوم بمهمة محددة. تتكون كل تعليمة من جزأين رئيسيين:

  • اسم التعليمة (Opcode): يحدد العملية التي سيتم تنفيذها.
  • المعاملات (Operands): تحدد البيانات التي ستعمل عليها التعليمة.

عادةً ما يتم تنظيم برنامج التجميع إلى أقسام مختلفة:

  • قسم البيانات (Data Segment): يحتوي على البيانات التي يستخدمها البرنامج.
  • قسم التعليمات (Code Segment): يحتوي على التعليمات التي ينفذها البرنامج.
  • قسم المكدس (Stack Segment): يستخدم لتخزين البيانات المؤقتة.

أساسيات لغة التجميع 8086

  • التمثيل العددي (Number Representation):
   *   النظام الثنائي (Binary): يستخدم الأرقام 0 و 1.
   *   النظام العشري (Decimal): يستخدم الأرقام 0 إلى 9.
   *   النظام الست عشري (Hexadecimal): يستخدم الأرقام 0 إلى 9 والحروف A إلى F. غالباً ما يستخدم في لغة التجميع لتمثيل العناوين والبيانات.
  • التعليقات (Comments): تستخدم لشرح التعليمات البرمجية. تبدأ التعليقات في لغة التجميع 8086 بـ `';'`.
  • المتغيرات (Variables): تستخدم لتخزين البيانات. يجب تعريف المتغيرات قبل استخدامها.
  • العناوين (Labels): تستخدم للإشارة إلى مواقع معينة في الذاكرة.

التعليمات الأساسية

| التعليمة | الوصف | |---|---| | MOV | نقل البيانات بين السجلات أو بين السجل والذاكرة. | | ADD | جمع رقمين. | | SUB | طرح رقمين. | | MUL | ضرب رقمين. | | DIV | قسمة رقمين. | | CMP | مقارنة رقمين. | | JMP | القفز إلى عنوان معين. | | JE/JZ | القفز إذا كان متساوياً/صفر. | | JNE/JNZ | القفز إذا لم يكن متساوياً/غير صفر. | | JG/JNLE | القفز إذا كان أكبر/غير أصغر أو يساوي. | | JL/JNGE | القفز إذا كان أصغر/غير أكبر أو يساوي. | | CALL | استدعاء إجراء فرعي (Subroutine). | | RET | العودة من إجراء فرعي. | | PUSH | دفع قيمة إلى المكدس (Stack). | | POP | سحب قيمة من المكدس. |

مثال على برنامج تجميع بسيط

هذا البرنامج يجمع رقمين ويخزن النتيجة في سجل AX:

```assembly .MODEL SMALL .STACK 100H

.DATA

 NUM1 DW 10
 NUM2 DW 20
 RESULT DW ?

.CODE MAIN PROC

 MOV AX, @DATA
 MOV DS, AX
 MOV AX, NUM1
 ADD AX, NUM2
 MOV RESULT, AX
 MOV AH, 4CH
 INT 21H

MAIN ENDP END MAIN ```

شرح البرنامج:

  • `.MODEL SMALL`: يحدد نموذج الذاكرة المستخدم.
  • `.STACK 100H`: يحدد حجم المكدس.
  • `.DATA`: يبدأ قسم البيانات.
  • `.CODE`: يبدأ قسم التعليمات.
  • `MAIN PROC`: يبدأ الإجراء الرئيسي.
  • `MOV AX, @DATA`: يحمل عنوان قسم البيانات في السجل AX.
  • `MOV DS, AX`: يضع عنوان قسم البيانات في سجل DS.
  • `MOV AX, NUM1`: يحمل قيمة NUM1 في السجل AX.
  • `ADD AX, NUM2`: يضيف قيمة NUM2 إلى السجل AX.
  • `MOV RESULT, AX`: يخزن نتيجة الجمع في المتغير RESULT.
  • `MOV AH, 4CH`: يجهز البرنامج للخروج.
  • `INT 21H`: يستدعي مقاطعة DOS لإنهاء البرنامج.
  • `MAIN ENDP`: ينهي الإجراء الرئيسي.
  • `END MAIN`: ينهي البرنامج.

الأدوات اللازمة

  • المجمع (Assembler): يقوم بتحويل كود التجميع إلى كود الآلة. أمثلة: MASM, TASM.
  • الرابط (Linker): يربط بين الكود المجمع والمكتبات الخارجية لإنشاء ملف تنفيذي.
  • المصحح (Debugger): يستخدم لتصحيح الأخطاء في البرنامج. أمثلة: DEBUG.

مفاهيم متقدمة

  • المقاطعات (Interrupts): آليات تسمح للبرنامج بالاستجابة للأحداث الخارجية.
  • الإجراءات الفرعية (Subroutines): كتل من التعليمات البرمجية التي يمكن استدعاؤها من أجزاء أخرى من البرنامج.
  • الماكرو (Macros): اختصارات للتعليمات البرمجية المتكررة.
  • الوصول إلى الأجهزة (Hardware Access): التحكم في الأجهزة الخارجية باستخدام تعليمات التجميع.

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

  • تطوير برامج التشغيل (Device Drivers): البرامج التي تسمح لنظام التشغيل بالتواصل مع الأجهزة.
  • الأنظمة المضمنة (Embedded Systems): الأنظمة التي يتم تضمينها في الأجهزة الأخرى، مثل أجهزة التحكم الصناعية والأجهزة المنزلية.
  • تحسين الأداء (Performance Optimization): تحسين أداء البرامج عن طريق كتابة أجزاء حرجة من الكود بلغة التجميع.
  • الهندسة العكسية (Reverse Engineering): تحليل الكود المجمّع لفهم كيفية عمل البرنامج.

استراتيجيات الخيارات الثنائية والتحليل الفني (لربط الموضوع بمجال الخيارات الثنائية)

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

  • استراتيجية مارتينجال (Martingale Strategy): مضاعفة الرهان بعد كل خسارة.
  • استراتيجية فيبوناتشي (Fibonacci Strategy): استخدام تسلسل فيبوناتشي لتحديد حجم الرهان.
  • استراتيجية 60 ثانية (60 Second Strategy): تداول الخيارات قصيرة الأجل.
  • تحليل الشموع اليابانية (Candlestick Pattern Analysis): تحديد الاتجاهات بناءً على أنماط الشموع.
  • تحليل حجم التداول (Volume Analysis): تحديد قوة الاتجاه بناءً على حجم التداول.
  • مؤشر المتوسط المتحرك (Moving Average Indicator): تنعيم بيانات الأسعار لتحديد الاتجاهات.
  • مؤشر مؤشر القوة النسبية (Relative Strength Index - RSI): قياس سرعة وتغير حركة السعر.
  • مؤشر الماكد (Moving Average Convergence Divergence - MACD): تحديد التغيرات في قوة واتجاه وسرعة حركة السعر.
  • مؤشر بولينجر باندز (Bollinger Bands): قياس تقلبات السوق.
  • استراتيجية الاختراق (Breakout Strategy): تداول عند اختراق مستويات الدعم والمقاومة.
  • استراتيجية التداول العكسي (Reversal Strategy): تداول عند توقع انعكاس الاتجاه.
  • استراتيجية التداول مع الاتجاه (Trend Following Strategy): تداول في اتجاه الاتجاه السائد.
  • التحليل الأساسي (Fundamental Analysis): تحليل العوامل الاقتصادية والمالية التي تؤثر على سعر الأصل.
  • التحليل الفني (Technical Analysis): تحليل الرسوم البيانية والمؤشرات الفنية لتحديد فرص التداول.
  • إدارة المخاطر (Risk Management): تحديد حجم الرهان المناسب وتقليل الخسائر.
  • استراتيجية التداول الآلي (Automated Trading Strategy): استخدام برامج الكمبيوتر لتنفيذ الصفقات تلقائيًا.
  • استراتيجية التداول الخوارزمي (Algorithmic Trading Strategy): تطوير خوارزميات لتحديد فرص التداول.
  • تحليل الارتباط (Correlation Analysis): تحديد العلاقة بين الأصول المختلفة.
  • تحليل الانحدار (Regression Analysis): توقع حركة الأسعار بناءً على البيانات التاريخية.
  • استراتيجية التداول المتأرجح (Swing Trading Strategy): الاحتفاظ بالصفقات لعدة أيام أو أسابيع.
  • استراتيجية التداول اليومي (Day Trading Strategy): إغلاق جميع الصفقات في نهاية اليوم.
  • استراتيجية التداول على المدى الطويل (Long-Term Trading Strategy): الاحتفاظ بالصفقات لعدة أشهر أو سنوات.
  • استراتيجية المضاربة (Scalping Strategy): إجراء العديد من الصفقات الصغيرة لتحقيق أرباح صغيرة.
  • استراتيجية التداول على الأخبار (News Trading Strategy): تداول بناءً على الأخبار الاقتصادية والسياسية.
  • استراتيجية التداول الموسمي (Seasonal Trading Strategy): تداول بناءً على الأنماط الموسمية في الأسعار.

موارد إضافية

خاتمة

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

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер