این دستور nasm است که می تواند در ارائه دهنده میزبانی رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
nasm - اسمبلر Netwide، یک اسمبلر قابل حمل 80x86
خلاصه
نسم [-@ فایل پاسخ] [-f قالب] [-o مجموعه] [-l فهرست فایل] [گزینه های...] نام فایل
شرح
La نسم دستور فایل را مونتاژ می کند نام فایل و خروجی را به فایل هدایت می کند مجموعه if
مشخص شده. اگر مجموعه مشخص نشده است، نسم نام فایل خروجی پیش فرض را از آن استخراج خواهد کرد
نام فایل ورودی آن، معمولاً با الحاق '.o' یا '.obj'، یا با حذف همه
پسوند برای یک فایل باینری خام در صورت عدم موفقیت، نام فایل خروجی "nasm.out" خواهد بود.
OPTIONS
-@ نام فایل
علل نسم برای پردازش گزینه ها از نام فایل به گونه ای که گویی در دستور گنجانده شده اند
خط.
-a
علل نسم برای جمع آوری فایل ورودی داده شده بدون استفاده از ماکرو
پیش پردازنده
-D|-d کلان[=ارزش]
ماکرو تک خطی را از قبل تعریف می کند.
-E|-e
علل نسم برای پیش پردازش فایل ورودی داده شده، و نوشتن خروجی در stdout (یا
نام فایل خروجی مشخص شده)، و در واقع چیزی را مونتاژ نمی کند.
-f قالب
فرمت فایل خروجی را مشخص می کند. برای مشاهده لیستی از فرمت های خروجی معتبر، از -hf
گزینه.
-F قالب
فرمت اطلاعات اشکال زدایی را مشخص می کند. برای مشاهده لیستی از فرمت های خروجی معتبر، از
-y گزینه (مثلا -فلف -y).
-g
علل نسم برای تولید اطلاعات اشکال زدایی در قالب انتخاب شده.
-h
علل نسم پس از ارائه خلاصه ای از گزینه های فراخوانی خود، بلافاصله خارج شوید.
-hf
مثل -h ، اما تمام فرمت های خروجی معتبر را نیز فهرست می کند.
-I|-i فهرست راهنما
یک دایرکتوری به مسیر جستجو برای فایل های شامل اضافه می کند. مشخصات دایرکتوری
باید شامل اسلش انتهایی باشد، زیرا مستقیماً به نام آن اضافه می شود
شامل فایل
-l لیست فایل
باعث می شود فهرست اسمبلی به فایل داده شده هدایت شود که در آن فایل اصلی است
منبع در سمت راست نمایش داده می شود (به علاوه منبع فایل های همراه و
بسط ماکروهای چند خطی) و کد تولید شده به صورت هگز در سمت چپ نشان داده شده است.
-M
علل نسم برای خروجی وابستگی به سبک Makefile به stdout. خروجی عادی است
سرکوب.
-MG پرونده
مثل -M اما فرض میکند که وابستگیهای Makefile از دست رفته ایجاد شده و به آن اضافه میشوند
لیست وابستگی بدون پیشوند
-MF پرونده
خروجی وابستگی به سبک Makefile به فایل مشخص شده.
-MD پرونده
همان ترکیبی از -M و -MF گزینه.
-MT پرونده
نام پیشفرض نام هدف وابستگی هدف وابستگی را لغو کنید. این هست
معمولاً همان نام فایل خروجی است که توسط -o گزینه.
-MQ پرونده
همان -MT جز اینکه سعی می کند کاراکترهایی را نقل قول کند که معنای خاصی دارند
نحو ساخت فایل این بیخطا نیست، زیرا همه شخصیتهای دارای معنای خاص نیستند
قابل نقل قول در Make.
-نماینده مجلس
هدف ساختگی را ساطع کنید.
-O عدد
بهینه سازی افست شاخه
· -O0: بدون بهینه سازی
· -O1: حداقل بهینه سازی
· -گاو: بهینه سازی چند گذر (پیش فرض)
-o مجموعه
یک نام دقیق برای فایل خروجی تعیین می کند نسم's به معنای پیش فرض از
تعیین آن
-P|-p پرونده
یک فایل را مشخص میکند که از قبل گنجانده شود، قبل از اینکه فایل منبع اصلی شروع به موجود شدن کند
فرآوری شده.
-s
علل نسم برای ارسال پیام های خطا و/یا متن راهنما به stdout به جای stderr.
-t
علل نسم برای مونتاژ در حالت SciTech TASM سازگار.
-U|-u درشت دستور
ماکرو تک خطی را تعریف نمی کند.
-v
علل نسم برای خروج بلافاصله، پس از نمایش شماره نسخه آن.
*-و[نه-]فو'
علل نسم برای فعال یا غیرفعال کردن کلاسهای خاصی از پیامهای هشدار، در gcc مانند
به عنوان مثال سبک -Worphan-برچسب ها or -برچسبهای یتیم.
-w[+-]فو
علل نسم برای فعال یا غیرفعال کردن کلاس های خاصی از پیام های هشدار، به عنوان مثال
-w+ orphan-labels or -w-macro-params.
-X قالب
فرمت گزارش خطا (gnu یا vc) را مشخص می کند.
-y
علل نسم برای فهرست کردن فرمت های اشکال زدایی پشتیبانی شده
-Z نام فایل
علل نسم برای تغییر مسیر پیام های خطا به نام فایل. این گزینه برای پشتیبانی وجود دارد
سیستم عامل هایی که stderr به راحتی هدایت نمی شود.
--پیشوند، --پسوند
آرگومان داده شده را (به ترتیب) به همه متغیرهای جهانی یا خارجی اضافه یا اضافه کنید.
نحو
این صفحه مرد به طور کامل نحو را توصیف نمی کند نسمزبان اسمبلی است، اما دارد
خلاصه ای از تفاوت های دیگر اسمبلرها را ارائه دهید.
ثبت برخلاف گاز، و ثبات های پشته ممیز شناور هستند
به عنوان st0, st1، و غیره.
نقطه شناور دستورالعمل ممکن است از فرم تک عملوند یا دوتایی استفاده کند. آ به
کلمه کلیدی ارائه شده است. بنابراین، یکی می تواند بنویسد
fadd st0,st1
fadd st1,st0
یا می توان از فرم های تک عملوندی جایگزین استفاده کرد
fadd st1
fadd به st1
غیر اولیه ذخیره سازی با استفاده از رزرو شده است RESB, RESW, RESD, RESQ, REST و رزو
کدهای عملیاتی کاذب که هر کدام یک پارامتر دارند که تعداد بایت ها، کلمات،
دو کلمه، چهار کلمه یا کلمات ده بایتی برای رزرو.
تکرار اقلام داده توسط DUP کلمه کلیدی همانطور که در اسمبلرهای DOS دیده می شود، اما توسط
استفاده از TIMES پیشوند، مانند این:
پیام: بار 3 دسی بل 'abc'
برابر 64-$+پیام دسی بل 0
که رشته abcabcabc را تعریف می کند و به دنبال آن تعداد صحیح صفر بایت برای ساختن
طول کل تا 64 بایت.
آیکون منابع همیشه فوری درک می شوند (یعنی آدرس نماد)،
مگر اینکه از براکت های مربع استفاده شود که در این صورت محتویات مکان حافظه است
استفاده شده. بدین ترتیب:
mov ax, wordvar
AX را با آدرس متغیر wordvar بارگذاری می کند، در حالی که
mov ax،[wordvar]
mov ax،[wordvar+1]
mov ax،[es:wordvar+bx]
همه به محتویات مکان های حافظه نحو ها
mov ax,es:wordvar[bx]
es mov ax,wordvar[1]
به هیچ وجه قانونی نیستند، اگرچه استفاده از نام ثبت بخش به عنوان پیشوند دستورالعمل
معتبر است و می توان با دستورالعمل هایی مانند LODSB که نمی توان هیچ کدام را نادیده گرفت
روش دیگر.
ثابت ممکن است در اکثر فرمت ها به صورت عددی بیان شود: H، Q یا B انتهایی نشان دهنده هگز است.
اکتال یا باینری به ترتیب، و "0x" یا "$" پیشرو نیز نشان دهنده هگز است. صفر قبل از عدد
به هیچ وجه رفتار خاصی ندارند. ثابت های کاراکتری ممکن است در یک یا دو محصور شوند
نقل قول ها هیچ شخصیت فراری وجود ندارد ترتیب کمی اندین (معکوس) است، به طوری که
ثابت شخصیت 'آ ب پ ت' نشان دهنده 0x64636261 است و نه 0x61626364.
برچسب های محلی با یک نقطه شروع می شوند و "محل" آنها توسط اسمبلر اعطا می شود
اضافه کردن نام نماد غیر محلی قبلی. بنابراین یک برچسب '.loop' بعد از آن اعلام می شود
یک برچسب 'label' در واقع نمادی به نام 'label.loop' تعریف کرده است.
دستورالعمل ها
بخش نام or بخش نام علل نسم برای هدایت تمام کدهای زیر به نام
بخش. نام بخش ها با فرمت فایل خروجی متفاوت است، اگرچه اکثر فرمت ها از آن پشتیبانی می کنند
نام متن, .داده ها و .bss. (استثنا این است اعتراض قالب، که در آن همه بخش ها هستند
قابل تعریف توسط کاربر.)
مطلق نشانی علل نسم برای قرار دادن نقطه مونتاژ فرضی خود در یک مطلق
آدرس: بنابراین ممکن است هیچ کد یا داده ای تولید نشود، اما می توانید استفاده کنید RESB, RESW و RESD حرکت کردن
نقطه مونتاژ در ادامه، و شما می توانید برچسب ها را تعریف کنید. بنابراین ممکن است از این دستورالعمل استفاده شود
ساختارهای داده را تعریف کنید وقتی مونتاژ مطلق را تمام کردید، باید صادر کنید
دیگر بخش دستورالعمل بازگشت به مونتاژ عادی
بیت 16, بیت 32 or بیت 64 حالت پردازنده پیش فرض را تغییر می دهد نسم is
تولید کد: معادل آن است USE16 or USE32 در اسمبلرهای DOS
خارجی نماد و GLOBAL نماد تعاریف نماد واردات و صادرات به ترتیب از
و به ماژول های دیگر توجه داشته باشید که GLOBAL دستورالعمل باید قبل از تعریف ظاهر شود
نمادی که به آن اشاره دارد
STRUC نام ساختاری و ENDSTRUC، هنگامی که برای براکت تعدادی از استفاده می شود RESB, RESW یا مشابه آن
دستورالعمل ها، یک ساختار داده را تعریف کنید. علاوه بر تعریف افست های
اعضای ساختار، ساختار همچنین نمادی را برای اندازه سازه تعریف می کند.
که به سادگی نام ساختار با اندازه تا انتها چسبیده است.
فرمت خاص دستورالعمل ها
ORG نشانی توسط استفاده می شود صندوق فرمت خروجی باینری شکل مسطح و آدرس را مشخص می کند
که در نهایت کد خروجی بارگذاری می شود.
گروه grpname seg1 seg2... توسط فرمت خروجی obj (مایکروسافت 16 بیتی) استفاده می شود و
گروه های بخش را تعریف می کند. این فرمت نیز استفاده می کند بالا رفتن، که تمام بخش را هدایت می کند،
نام گروه و نماد خروجی به فایل شی باید با حروف بزرگ باشد. توجه داشته باشید که
مونتاژ واقعی هنوز به حروف کوچک و بزرگ حساس است.
کتابخانه libname توسط استفاده می شود RDF فرمت خروجی، و باعث ایجاد یک رکورد وابستگی می شود
روی فایل خروجی نوشته می شود که نشان می دهد برنامه به کتابخانه خاصی در داخل نیاز دارد
دستور اجرا
ماکرو پیش پردازشگر
ماکروهای تک خطی با استفاده از ٪تعريف كردن or % تعریف کنید دستورات، در موارد مشابه
مد پیش پردازنده C. آنها را می توان با توجه به تعداد بیش از حد بارگذاری کرد
پارامترها، اگرچه تعریف یک ماکرو بدون پارامتر مانع از تعریف هر کدام می شود
ماکرو با همین نام پارامترها را می گیرد و بالعکس. ٪تعريف كردن ماکروهایی که
نام ها به حروف بزرگ و کوچک مطابقت دارند، در حالی که % تعریف کنید ماکروهای حساس به حروف بزرگ را تعریف می کند.
ماکروهای چند خطی با استفاده از تعریف می شوند % ماکرو و %imacro (تمایز همان است
که بین ٪تعريف كردن و % تعریف کنید) که نحو آن به شرح زیر است
%macro name minprm[-maxprm][+][.nolist] [پیشفرض]
%endmacro
باز هم، این ماکروها ممکن است بیش از حد بارگذاری شوند. علامت مثبت دنباله دار نشان می دهد که هر کدام
پارامترهای بعد از آخرین، با کاماهای جداکننده آنها، در آخری جمع می شوند
پارامتر. پیش فرض قسمت را می توان برای تعیین پیش فرض های ماکرو نامشخص استفاده کرد
پارامترهای بعد مینپارام. %endm مترادف معتبری برای %endmacro.
برای ارجاع به پارامترهای ماکرو در یک بسط ماکرو، از استفاده می کنید %1, %2 و غیره شما
همچنین می تواند اعمال کند که یک پارامتر ماکرو باید حاوی یک کد شرط با استفاده از %+1و
شما می توانید کد شرط را با استفاده از ٪ -1. شما همچنین می توانید یک برچسب خاص برای a تعریف کنید
فراخوانی ماکرو با پیشوند آن با علامت دو برابر '%'.
فایل ها را می توان با استفاده از ٪عبارتند از دستورالعمل، که مانند C عمل می کند.
پیش پردازنده دارای یک "پشته زمینه" است که ممکن است توسط یک ماکرو برای ذخیره استفاده شود
اطلاعاتی که بعداً بازیابی خواهد شد. می توانید با استفاده از یک زمینه روی پشته فشار دهید
٪فشار دادن، یکی را با استفاده از آن حذف کنید ٪ترکیدن، و نام زمینه بالا را تغییر دهید (بدون مزاحمت
هر تعاریف مرتبط) با استفاده از % repl. برچسب ها و ٪تعريف كردن ماکروهای مخصوص بالا
زمینه ممکن است با پیشوند نام آنها با %$ و چیزهای خاص برای بعدی تعریف شود
متن پایین با %$$ و غیره.
مونتاژ شرطی به وسیله انجام می شود %ifdef, %ifndef, % دیگر و % endif همانطور که در C.
(غیر از آن %ifdef می تواند چندین نام کلان فرضی را بپذیرد و در صورت وجود، TRUE را ارزیابی می کند
از آنها تعریف شده است.) علاوه بر این بخشنامه ها %ifctx و %ifnctx را می توان به استفاده
شرط در نام زمینه بالایی در پشته زمینه. مجموعه آشکار از
دستورالعمل های «اگر دیگر»، % elifdef, %elifndef, % elifctx و %elifnctx همچنین پشتیبانی می شوند.
با استفاده از خدمات onworks.net از nasm آنلاین استفاده کنید