هذا هو الأمر nasm الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
ناسم - مجمع Netwide ، مجمع 80x86 محمول
موجز
NASM [-@ ملف الرد] [-f شكل] [-o ملف خارجي] [-l ملف القائمة] [الخيارات...] اسم الملف
الوصف
تشير NASM يقوم الأمر بتجميع الملف اسم الملف ويوجه الإخراج إلى الملف ملف if
محدد. لو ملف غير محدد ، NASM سيشتق اسم ملف الإخراج الافتراضي من
اسم ملف الإدخال الخاص به ، عادةً عن طريق إلحاق ".o" أو ".obj" ، أو عن طريق إزالة الكل
ملحقات لملف ثنائي خام. إذا تعذر ذلك ، فسيكون اسم ملف الإخراج "nasm.out".
OPTIONS
-@ اسم الملف
الأسباب NASM لمعالجة الخيارات من اسم الملف كما لو تم تضمينها في الأمر
الخط.
-a
الأسباب NASM لتجميع ملف الإدخال المحدد دون تطبيق الماكرو أولاً
المعالج.
-D|-d ماكرو [= القيمة]
يعرّف مسبقًا ماكرو من سطر واحد.
-E|-e
الأسباب NASM للمعالجة المسبقة لملف الإدخال المحدد ، وكتابة الإخراج إلى المعياري (أو
اسم ملف الإخراج المحدد) ، وليس في الواقع تجميع أي شيء.
-f شكل
يحدد تنسيق ملف الإخراج. للاطلاع على قائمة بتنسيقات الإخراج الصالحة ، استخدم امتداد -Hf
الخيار.
-F شكل
تحدد تنسيق معلومات التصحيح. للاطلاع على قائمة بتنسيقات الإخراج الصالحة ، استخدم امتداد
-y الخيار (على سبيل المثال -نفس -y).
-g
الأسباب NASM لإنشاء معلومات التصحيح بالتنسيق المحدد.
-h
الأسباب NASM للخروج فورًا ، بعد إعطاء ملخص لخيارات الاستدعاء الخاصة به.
-Hf
مثل -h ، ولكنه يسرد أيضًا جميع تنسيقات الإخراج الصالحة.
-I|-i دليل
يضيف دليلاً إلى مسار البحث لتضمين الملفات. مواصفات الدليل
يجب أن تتضمن الشرطة المائلة اللاحقة ، حيث سيتم إضافتها مباشرة إلى اسم
تضمين الملف.
-l ملف القائمة
يؤدي إلى توجيه قائمة التجميع إلى الملف المحدد الذي يحتوي على الملف الأصلي
يتم عرض المصدر على الجانب الأيمن (بالإضافة إلى مصدر الملفات المضمنة و
توسيع وحدات الماكرو متعددة الأسطر) ويتم عرض الكود المُنشأ في شكل سداسي عشري على اليسار.
-M
الأسباب NASM لإخراج التبعيات على غرار Makefile إلى stdout ؛ الناتج الطبيعي
قمع.
-مغ ملف
مثل -M ولكن يفترض أنه يتم إنشاء اعتماديات Makefile المفقودة وإضافتها إلى
قائمة التبعيات بدون بادئة.
-مف ملف
تبعيات نمط ملف الإخراج إلى الملف المحدد.
-MD ملف
مثل مزيج من -M -مف خيارات.
-MT ملف
تجاوز الاسم الافتراضي لاسم التبعية الهدف التبعية الهدف. هذا هو
عادةً ما يكون هو نفسه اسم ملف الإخراج ، المحدد بواسطة -o الخيار.
-MQ ملف
كمثل -MT إلا أنه يحاول اقتباس الأحرف التي لها معنى خاص في
بناء جملة Makefile. هذا ليس مضمونًا ، حيث ليست كل الأحرف ذات المعنى الخاص كذلك
يمكن اقتباسه في Make.
-MP
ينبعث هدف زائف.
-O عدد
تحسين تعويضات الفروع.
· -O0: لا يوجد تحسين
· -O1: الحد الأدنى من التحسين
· -ثور: Multipass Optimization (افتراضي)
-o ملف
يحدد اسمًا دقيقًا لملف الإخراج ، مع تجاوز NASMالوسائل الافتراضية لـ
تحديده.
-P|-p ملف
يحدد ملفًا ليتم تضمينه مسبقًا ، قبل أن يبدأ ملف المصدر الرئيسي
معالجتها.
-s
الأسباب NASM لإرسال رسائل الخطأ و / أو نص المساعدة إلى stdout بدلاً من stderr.
-t
الأسباب NASM للتجميع في وضع متوافق مع SciTech TASM.
-U|-u الماكرو
يقوم بإلغاء تعريف ماكرو من سطر واحد.
-v
الأسباب NASM للخروج فورًا بعد عرض رقم الإصدار الخاص به.
* -W [no-] foo '
الأسباب NASM لتمكين أو تعطيل فئات معينة من رسائل التحذير ، مثل دول مجلس التعاون الخليجي
على سبيل المثال -ورفان-تسميات or -لا-يتيم-تسميات.
-w[+ -] فو
الأسباب NASM لتمكين أو تعطيل فئات معينة من رسائل التحذير ، على سبيل المثال
-w + تسميات اليتيمة or -w- ماكرو بارامز.
-X شكل
يحدد تنسيق الإبلاغ عن الخطأ (gnu أو vc).
-y
الأسباب NASM لسرد تنسيقات التصحيح المدعومة.
-Z اسم الملف
الأسباب NASM لإعادة توجيه رسائل الخطأ إلى اسم الملف. هذا الخيار موجود لدعم
أنظمة التشغيل التي لا يمكن إعادة توجيه stderr إليها بسهولة.
--prefix ، --postfix
قم بإلحاق أو إلحاق (على التوالي) الوسيطة المعطاة لجميع المتغيرات العامة أو الخارجية.
بناء الجملة
لا تصف صفحة الدليل هذه بنية جملة NASMلغة التجميع ، لكنها تفعل ذلك
إعطاء ملخص للاختلافات عن المجمعات الأخرى.
يسجل ليس لها علامة "٪" بادئة ، على عكس الغاز، ومسجلات مكدس الفاصلة العائمة هي
يشار إليها باسم st0, st1، وهلم جرا.
النقطة العائمة تعليمات قد تستخدم إما صيغة المعامل المفرد أو المعامل المزدوج. أ إلى
يتم توفير الكلمات الرئيسية ؛ وبالتالي ، يمكن للمرء إما أن يكتب
fadd st0، st1
fadd st1، st0
أو يمكن للمرء استخدام أشكال المعامل الفردي البديلة
بدعة st1
fadd إلى st1
غير مهيأ تخزين محجوز باستخدام ريسب, ريسو, RSD, RESQ, REST RESO
أكواد pseudo-opcodes ، كل منها يأخذ معلمة واحدة تعطي عدد البايت ، الكلمات ،
الكلمات المزدوجة أو الرباعية أو الكلمات المكونة من عشرة بايت للحجز.
تكرار من عناصر البيانات لم يتم تنفيذها بواسطة الحزب الاتحادي الديمقراطي الكلمة الأساسية كما تظهر في مجمعات DOS ، ولكن بواسطة
استخدام TIMES بادئة ، مثل هذا:
الرسالة: مرات 3 ديسيبل "abc"
مرات 64 - $ + رسالة db 0
الذي يعرف السلسلة abcabcabc ، متبوعًا بالعدد الصحيح من صفر بايت لجعل
إجمالي الطول يصل إلى 64 بايت.
رمز المراجع يُفهم دائمًا على أنه فوري (أي عنوان الرمز) ،
ما لم يتم استخدام أقواس مربعة ، وفي هذه الحالة يتم استخدام محتويات موقع الذاكرة
مستخدم. هكذا:
وسائل التحقق الفأس ، ووردفار
يقوم بتحميل AX بعنوان المتغير wordvar ، بينما
mov ax ، [wordvar]
mov ax ، [wordvar + 1]
mov ax ، [es: wordvar + bx]
تشير جميعها إلى محتويات من مواقع الذاكرة. التركيب
mov ax ، es: wordvar [bx]
es mov ax ، wordvar [1]
غير قانوني على الإطلاق ، على الرغم من استخدام اسم تسجيل المقطع كبادئة تعليمات
صالح ، ويمكن استخدامه مع تعليمات مثل لودسب التي لا يمكن تجاوزها
طريق اخر.
ثابت يمكن التعبير عنها عدديًا في معظم التنسيقات: تشير H أو Q أو B اللاحقة إلى عرافة ،
ثماني أو ثنائي على التوالي ، و "0x" أو "$" البادئة تدل على ست عشري. الأصفار البادئة
لا يتم التعامل معها بشكل خاص على الإطلاق. يمكن وضع ثوابت الحرف بشكل مفرد أو مزدوج
يقتبس؛ لا توجد شخصية هروب. الترتيب هو القليل من endian (معكوس) ، بحيث
ثابت الشخصية 'ا ب ت ثتشير 'إلى 0x64636261 وليس 0x61626364.
تبدأ العلامات المحلية بفترة ، ويتم منح "المنطقة المحلية" من قبل المُجمِّع
إضافة اسم الرمز غير المحلي السابق. هكذا يعلن عن تسمية ". حلقة" بعد
لقد حددت التسمية "label" رمزًا يسمى "label.loop".
التوجيهات
الجزء الاسم or القطاعي الاسم الأسباب NASM لتوجيه كل التعليمات البرمجية التالية إلى الاسم
قسم. تختلف أسماء الأقسام باختلاف تنسيق ملف الإخراج ، على الرغم من أن معظم التنسيقات تدعم تنسيق
أسماء .text, .data .Bss. (الاستثناء هو ملف الكائنات الشكل ، حيث تكون جميع الأجزاء
تعريف المستخدم.)
مطلق العنوان الأسباب NASM لوضع نقطة التجمع النظري في نقطة مطلقة
العنوان: لذلك لا يمكن إنشاء أي رمز أو بيانات ، ولكن يمكنك استخدام ريسب, ريسو RSD للانتقال
نقطة التجميع أكثر ، ويمكنك تحديد الملصقات. لذلك يمكن استخدام هذا التوجيه ل
تحديد هياكل البيانات. عند الانتهاء من إجراء التجميع المطلق ، يجب عليك إصدار
طرق الجزء التوجيه للعودة إلى التجمع الطبيعي.
BITS 16, BITS 32 or BITS 64 يبدل وضع المعالج الافتراضي الذي NASM is
توليد الكود: إنه يعادل الاستخدام 16 or الاستخدام 32 في مجمعات DOS.
خارجي رمز مواكبة عالمية رمز استيراد وتصدير تعريفات رموز ، على التوالي ، من
والوحدات النمطية الأخرى. نلاحظ أن مواكبة عالمية يجب أن يظهر التوجيه قبل تعريف
الرمز الذي يشير إليه.
ستروك strucname إندستروك، عند استخدامها لوضع قوسين بين عدد من ريسب, ريسو أو مشابه
التعليمات ، تحديد بنية البيانات. بالإضافة إلى تحديد تعويضات
أعضاء الهيكل ، يحدد البناء أيضًا رمزًا لحجم الهيكل ،
الذي هو ببساطة اسم الهيكل مع المقاس علق حتى النهاية.
شكل محدد التوجيهات
ORG العنوان يستخدم من قبل بن تنسيق الإخراج الثنائي ذو الشكل المسطح ، ويحدد العنوان
الذي سيتم تحميل رمز الإخراج في النهاية.
مجموعة grpname Seg1 Seg2... يتم استخدامه بواسطة تنسيق الإخراج obj (Microsoft 16 بت) ، و
يحدد مجموعات القطع. يستخدم هذا التنسيق أيضًا الأحرف الكبيرة، والذي يوجه هذا الجزء كله ،
يجب أن تكون أسماء المجموعات والرموز التي يتم إخراجها إلى ملف الكائن بأحرف كبيرة. نلاحظ أن
التجميع الفعلي لا يزال حساسًا لحالة الأحرف.
مكتبة ليبنام يستخدم من قبل قوات الدفاع الرواندية الناتج ، ويسبب أن يكون سجل التبعية
مكتوبًا في ملف الإخراج مما يشير إلى أن البرنامج يتطلب مكتبة معينة بتنسيق
من أجل الجري.
MACRO المعالج
يتم تعريف وحدات الماكرو أحادية السطر باستخدام ملحق ٪يُعرِّف or ٪ معرف أوامر مماثلة
الموضة للمعالج C. يمكن أن تكون محملة فوق طاقتها فيما يتعلق بعدد
المعلمات ، على الرغم من أن تعريف ماكرو بدون معلمات يمنع تعريف أي منها
ماكرو بنفس الاسم يأخذ المعلمات ، والعكس صحيح. ٪يُعرِّف يعرّف وحدات الماكرو التي
تتطابق الأسماء مع حالة الأحرف ، بينما ٪ معرف يحدد وحدات الماكرو غير الحساسة لحالة الأحرف.
يتم تعريف وحدات الماكرو متعددة الأسطر باستخدام ٪دقيق ٪ إيماكرو (التمييز هو نفسه
ذلك بين ٪يُعرِّف ٪ معرف) ، والتي يكون تركيبها كما يلي
٪ اسم الماكرو minprm [-maxprm] [+] [. nolist] [الإعدادات الافتراضية]
٪ endmacro
مرة أخرى ، قد يتم تحميل وحدات الماكرو هذه بشكل زائد. تشير علامة الجمع اللاحقة إلى أي
يتم دمج المعلمات بعد الأخير ، مع الفواصل الفاصلة ، في الأخير
معامل. ال الافتراضات يمكن استخدام الجزء لتحديد الإعدادات الافتراضية لماكرو غير محدد
المعلمات بعد مينبارام. ٪ endm هو مرادف صالح لـ ٪ endmacro.
للإشارة إلى معلمات الماكرو ضمن توسيع ماكرو ، يمكنك استخدام %1, %2 وما إلى ذلك وهلم جرا. أنت
يمكن أن تفرض أيضًا أن معلمة الماكرو يجب أن تحتوي على رمز شرط باستخدام ٪ + 1و
يمكنك عكس رمز الشرط باستخدام -1٪. يمكنك أيضًا تحديد تسمية خاصة بـ
استدعاء الماكرو عن طريق تسبقه بعلامة '٪' مزدوجة.
يمكن تضمين الملفات باستخدام امتداد ٪يشمل التوجيه ، الذي يعمل مثل C.
يحتوي المعالج المسبق على "حزمة سياق" ، والتي يمكن استخدامها بواسطة ماكرو واحد للتخزين
المعلومات التي سيتم استردادها لاحقًا. يمكنك دفع سياق على المكدس باستخدام
٪يدفع، قم بإزالة أحد باستخدام ٪ فرقعة، وتغيير اسم السياق العلوي (بدون إزعاج
أي تعريفات مرتبطة) باستخدام ٪ رد. تسميات و ٪يُعرِّف وحدات الماكرو الخاصة بالأعلى
يمكن تعريف السياق من خلال إضافة بادئة إلى أسمائهم بـ٪ $ ، والأشياء الخاصة بالآخر
السياق أسفل مع٪ $$ ، وهكذا.
يتم التجميع الشرطي عن طريق ٪ ifdef, ٪ ifndef, ٪آخر ٪إنهاء إذا مثل كلمة C.
(باستثناء هذا ٪ ifdef يمكن أن تقبل عدة أسماء ماكرو مفترضة ، وسوف تقيم TRUE إن وجدت
منها محددة). بالإضافة إلى التوجيهات ٪ ifctx ٪ ifnctx يمكن استخدامها ل
شرط على اسم السياق العلوي في حزمة السياق. مجموعة واضحة من
توجيهات "else-if" ، ٪ elifdef, ٪ اليفندف, ٪ elifctx ٪ elifnctx مدعومة أيضًا.
استخدم ناس على الإنترنت باستخدام خدمات onworks.net