هل هناك اتفاقيات قانون للتجميع (بشكل أساسي الموافقة المسبقة عن علم)؟ [مغلق

StackOverflow https://stackoverflow.com/questions/946950

سؤال

هل هناك اتفاقيات قانون للتجميع (بشكل أساسي الموافقة المسبقة عن علم)؟

هل كانت مفيدة؟

المحلول

كنت قادرا على العثور على دليل طراز لغة التجميع (PDF) التي قد تكون مهتما بها.

نصائح أخرى

عند كتابة التجمع، فمن المفيد جدا وليس على الإطلاق التعليق كل سطر

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

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

    start:   movlw   0x24      //  \
             movf    count     //   put 24 into count


    MyCount: decfsz  count     //decrement count and exit if done
             goto    myCount   //do the loop
             goto    exit      //count is done exit

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

    0020  movlw  0x24
    0021  movf   0x25     // 0x25 = memory address of count
    0022  decfsz 0x25
    0023  goto   0x0022   // loop back to 0x22 until count = 0
    0024  goto   0x01FF

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

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

كما أنني وضعت usualy roteen initeeen أقرب وقت قريب من نهاية الذاكرة هو أن تترك الحد الأقصى للمساحة لهذا البرنامج الفعلي.

نأمل أن يساعد بعض.

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

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

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

من الأفضل قراءة معظمهم وعندما يكون الأمر سهلا مثل النثر، فستجد طريقتك

أنا مع جيسون S - استخدم مترجم C إذا كان ذلك ممكنا، حتى لو كنت في نهاية المطاف تضمين بعض الأسطر من لغة التجميع في ملف ".c" الخاص بك باستخدام الكلمة الأساسية "__asامة".

إذا كان يجب عليك كتابة البرامج بأكملها في مجمع للموافقة المسبقة عن علم، فإن اتفاقية الاتصال الوظيفة الموصى بهاPiclist: Pic الترحيل و pclath.

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top