سؤال

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

[BITS 16]
[ORG 0x0000]

في البرنامج التعليمي kernel ، يبدأ بـ:

[ORG 0x0000]
[BITS 16]

كنت أتساءل عما إذا كان الترتيب الذي يتم فيه إعطاء هذه التوجيهات يحدث فرقًا؟ أنا أستخدم NASM Version 2.06RC2 ، Opensuse 11.2

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

المحلول

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

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

نصائح أخرى

لا يهم أي شخص يأتي أولاً ، لكنني أتبع هذا الترتيب عمومًا في برامجي:

        cpu 8086
        bits 16
        org 256

(لان bits 16 هو الافتراضي لتنسيق إخراج صندوق NASM أنا عمومًا لا أحدده بشكل صريح ، إلا عندما يكون هناك بعض bits 32 أجزاء إلى ملف.)

بالمناسبة ، فإن النماذج ذات الأقواس هي أشكال هذه التوجيهات ذات المستوى الأدنى. https://www.nasm.us/xdoc/2.14.02/html/nasmdoc6.html#section-6.1

توجيه البتات له شكل بدائي مكافئ تمامًا ، [بت 16] ، [بت 32] و [بت 64]. نموذج مستوى المستخدم هو ماكرو ليس له وظيفة سوى استدعاء النموذج البدائي.

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