این دستور yasm است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
yasm - مونتاژ کننده مدولار Yasm
خلاصه
یاسم [-f قالب] [-o مجموعه] [دیگر گزینه های...] {پرونده}
یاسم -h
شرح
اسمبلر مدولار یاسم یک اسمبلر قابل حمل و قابل هدف گیری مجدد است که تحت عنوان "جدید" نوشته شده است.
(2 یا 3 بند) مجوز BSD. Yasm در حال حاضر از مجموعه دستورات x86 و AMD64 پشتیبانی می کند.
دستورات اسمبلر NASM و GAS را می پذیرد، باینری خروجی می دهد، ELF32، ELF64، COFF، Win32 و
Win64 را فرمت می کند و اطلاعات اشکال زدایی منبع را در STABS، DWARF 2 و
فرمت های CodeView 8.
YASM شامل یاسم دستور، لیبیاسم، کتابخانه باطن اصلی، و تعداد زیادی
از ماژول ها در حال حاضر، لیبیاسم و ماژول های قابل بارگذاری به صورت ایستا در داخل آن تعبیه شده اند یاسم
قابل اجرا
La یاسم دستور فایل داخلی فایل را مونتاژ می کند و خروجی را به فایل هدایت می کند مجموعه if
مشخص شده. اگر مجموعه مشخص نشده است، یاسم نام فایل خروجی پیش فرض را از آن استخراج خواهد کرد
نام فایل ورودی آن، معمولاً با اضافه کردن .o یا .obj، یا با حذف همه پسوندها
برای یک فایل باینری خام در صورت عدم موفقیت، نام فایل خروجی yasm.out خواهد بود.
اگر با پرونده از "-"، یاسم ورودی استاندارد را جمع می کند و خروجی را به
فایل مجموعه، یا yasm.out اگر نه مجموعه مشخص شده است.
OPTIONS
بسیاری از گزینه ها ممکن است به یکی از این دو شکل داده شوند: یا خط تیره به دنبال یک حرف واحد،
یا دو خط تیره به دنبال نام گزینه طولانی. گزینه ها به ترتیب حروف الفبا فهرست شده اند.
سوالات عمومی گزینه
-a قوس or --arch=قوس: معماری هدف را انتخاب کنید
معماری هدف را انتخاب می کند. معماری پیش فرض "x86" است که پشتیبانی می کند
هر دو مجموعه دستورالعمل IA-32 و مشتقات و AMD64. برای چاپ لیستی از
معماری های موجود برای خروجی استاندارد، از "help" به عنوان استفاده کنید قوساست. دیدن yasm_arch(7) برای یک
لیست معماری های پشتیبانی شده
-f قالب or --oformat=قالب: فرمت شی را انتخاب کنید
فرمت شی خروجی را انتخاب می کند. قالب پیش فرض شی "bin" است که یک تخت است
فرمت باینری بدون جابجایی برای چاپ لیستی از فرمت های شی موجود در
خروجی استاندارد، از "help" به عنوان استفاده کنید قالباست. دیدن yasm_objfmts(7) برای لیستی از پشتیبانی شده
فرمت های شی
-g اشکال زدایی کردن or --dformat=اشکال زدایی کردن: فرمت اشکال زدایی را انتخاب کنید
فرمت اشکال زدایی را برای اطلاعات اشکال زدایی انتخاب می کند. می توان از اطلاعات اشکال زدایی استفاده کرد
توسط یک دیباگر برای مرتبط کردن کدهای اجرایی به فایل منبع یا دریافت داده
اطلاعات ساختار و نوع قالبهای اشکالزدایی موجود بین شیهای مختلف متفاوت است
فرمت ها؛ یاسم هنگامی که یک ترکیب نامعتبر انتخاب شود، خطا می کند. شی پیش فرض
فرمت با فرمت شی انتخاب می شود. برای چاپ لیستی از اشکال زدایی موجود
فرمت های خروجی استاندارد، از "help" به عنوان استفاده کنید اشکال زدایی کردناست. دیدن yasm_dbgfmts(7) برای لیستی از
پشتیبانی از فرمت های اشکال زدایی
-L فهرست or --lformat=فهرست: فرمت فایل لیست را انتخاب کنید
قالب/سبک فایل لیست خروجی را انتخاب می کند. فایل های لیست معمولاً با هم مخلوط می شوند
منبع اصلی با کد ماشین تولید شده توسط اسمبلر. لیست پیش فرض
فرمت "nasm" است که فرمت فایل لیست NASM را تقلید می کند. برای چاپ لیست موجود
فرمت های فایل را به خروجی استاندارد فهرست کنید، از "help" به عنوان استفاده کنید فهرست.
-l لیست فایل or --list=لیست فایل: نام فایل لیست را مشخص کنید
نام فایل لیست خروجی را مشخص می کند. در صورت عدم استفاده از این گزینه، فایل لیستی وجود ندارد
تولید می شود.
-m دستگاه or --ماشین=دستگاه: معماری ماشین هدف را انتخاب کنید
معماری ماشین مورد نظر را انتخاب می کند. اساساً یک نوع فرعی از انتخاب شده است
معماری، نوع ماشین بین زیر مجموعههای اصلی یک معماری انتخاب میکند. برای
به عنوان مثال، برای معماری "x86"، دو ماشین موجود "x86" هستند
برای مجموعه دستورات IA-32 و مشتق 32 بیتی استفاده می شود و "amd64" که استفاده می شود
برای مجموعه دستورالعمل 64 بیتی. این تمایز برای تولید مورد نیاز است
فایل شی مناسب برای فرمت های شی قابل جابجایی مانند COFF و ELF. برای چاپ یک
لیست ماشین های موجود برای یک معماری معین به خروجی استاندارد، از "help" به عنوان استفاده کنید
دستگاه و معماری داده شده با استفاده از -a قوساست. دیدن yasm_arch(7) برای جزئیات بیشتر.
-o نام فایل or --objfile=نام فایل: نام فایل شی را مشخص کنید
نام فایل خروجی را مشخص می کند و نام پیش فرض تولید شده توسط Yasm را لغو می کند.
-p تجزیه کننده or -- تجزیه کننده =تجزیه کننده: تجزیه کننده را انتخاب کنید
تجزیه کننده (سینتکس اسمبلر) را انتخاب می کند. تجزیه کننده پیش فرض "nasm" است که
سینتکس NASM، Netwide Assembler را شبیه سازی می کند. تجزیه کننده دیگر موجود "گاز" است.
که سینتکس GNU AS را شبیه سازی می کند. برای چاپ لیستی از تجزیه کننده های موجود به صورت استاندارد
خروجی، از "help" به عنوان استفاده کنید تجزیه کنندهاست. دیدن yasm_parsers(7) برای لیستی از تجزیه کننده های پشتیبانی شده.
-r preproc or --preproc=preproc: پیش پردازنده را انتخاب کنید
پیش پردازنده را برای استفاده در فایل ورودی قبل از ارسال آن به تجزیه کننده انتخاب می کند.
پیش پردازنده ها اغلب عملکردهای ماکرو را ارائه می دهند که در قسمت اصلی گنجانده نشده است
تجزیه کننده پیش پردازنده پیش فرض "nasm" است که یک نسخه وارداتی از واقعی است
پیش پردازنده NASM یک پیش پردازنده "خام" نیز موجود است که به سادگی از آن صرفنظر می کند
مرحله پیش پردازش، ارسال فایل ورودی به طور مستقیم به تجزیه کننده. برای چاپ لیستی از
پیش پردازنده های موجود برای خروجی استاندارد، از "help" به عنوان استفاده کنید preproc.
-h or --کمک: خلاصه ای از گزینه ها را چاپ کنید
خلاصه ای از گزینه های فراخوان را چاپ می کند. همه گزینه های دیگر نادیده گرفته می شوند و خروجی ندارند
فایل تولید می شود.
- نسخه: نسخه یاسم را دریافت کنید
این گزینه باعث می شود که Yasm شماره نسخه Yasm و همچنین مجوز را چاپ کند
خلاصه به خروجی استاندارد همه گزینه های دیگر نادیده گرفته می شوند و هیچ فایل خروجی وجود ندارد
تولید شده
هشدار گزینه
-W گزینه ها دو شکل مخالف دارند: -Wنام و -نه-نام. فقط فرم های غیر پیش فرض هستند
در اینجا نشان داده شده است.
گزینه های هشدار به ترتیبی که در خط فرمان داده شده است، مدیریت می شوند، بنابراین اگر -w is
و پس از آن -Worphan-برچسب ها، همه هشدارها خاموش هستند جز برای برچسب های یتیم
-w: تمام پیام های هشدار را مهار کنید
این گزینه باعث می شود Yasm تمام پیام های هشدار را مهار کند. همانطور که در بالا بحث شد، این
این گزینه ممکن است با گزینه های دیگری برای فعال کردن مجدد هشدارهای مشخص شده دنبال شود.
-خطا: هشدارها را به عنوان خطا در نظر بگیرید
این گزینه باعث می شود که Yasm تمام هشدارها را به عنوان خطا در نظر بگیرد. به طور معمول هشدارها این کار را نمی کنند
از ایجاد یک فایل شی جلوگیری کنید و منجر به وضعیت خروج خراب نشود
از جانب یاسم، در حالی که خطاها انجام می دهند. این گزینه اخطارها را از نظر شرایط معادل با خطا می کند
از این رفتار
-Wno-non-cognized-char: در مورد کاراکترهای ورودی ناشناس هشدار ندهید
باعث می شود Yasm در مورد کاراکترهای ناشناس موجود در ورودی هشدار ندهد. معمولا یاسم
یک اخطار برای هر کاراکتر غیر ASCII موجود در فایل ورودی ایجاد می کند.
-Worphan-برچسب ها: اخطار روی برچسب هایی که فاقد گزینه انتهایی هستند
هنگام استفاده از تجزیهکننده سازگار با NASM، Yasm در مورد برچسبهایی که به تنهایی روی آنها یافت میشوند هشدار میدهد
یک خط بدون کولون انتهایی در حالی که اینها برچسب های قانونی در نحو NASM هستند، ممکن است
به دلیل اشتباهات تایپی یا ترتیب تعریف کلان، غیرعمدی باشد.
-X سبک: تغییر سبک گزارش خطا/اخطار
یک سبک خروجی خاص را برای پیام های خطا و هشدار انتخاب می کند. پیش فرض "gnu" است
سبک، که خروجی را تقلید می کند gcc. سبک "vc" نیز موجود است که شبیه سازی می شود
خروجی کامپایلر Visual C++ مایکروسافت.
این گزینه در دسترس است تا Yasm به صورت طبیعی تری در محیط های IDE ادغام شود
مانند Visual Studio یا Emacs که به IDE اجازه می دهد تا به درستی آن را تشخیص دهد
پیغام خطا/هشدار به این صورت است و به خط کد منبع متخلف باز می گردد.
پیش پردازنده گزینه
در حالی که این گزینههای پیشپردازنده از نظر تئوری بر هر پیشپردازنده، تنها، تأثیر میگذارند
پیش پردازنده ای که در حال حاضر در یاسم وجود دارد، پیش پردازنده «nasm» است.
-D کلان[=ارزش]: یک ماکرو از قبل تعریف کنید
ماکرو تک خطی را از قبل تعریف می کند. مقدار اختیاری است (اگر مقداری داده نشود،
ماکرو هنوز تعریف شده است، اما به یک مقدار خالی).
-e or ---preproc-فقط: فقط پیش پردازش
مونتاژ را پس از مرحله پیش پردازش متوقف می کند. خروجی از پیش پردازش شده به
نام خروجی مشخص شده یا اگر نام خروجی مشخص نشده باشد، خروجی استاندارد. خیر
فایل شی تولید می شود.
-I مسیر: اضافه کردن مسیر فایل
فهرست را اضافه می کند مسیر به مسیر جستجوی شامل فایل ها. مسیر جستجو به صورت پیش فرض است
فقط شامل دایرکتوری که فایل منبع در آن قرار دارد.
-P نام فایل: یک فایل را از قبل درج کنید
از قبل شامل فایل است نام فایل، باعث می شود به نظر برسد نام فایل به
ورودی می تواند برای آماده کردن ماکروهای چند خطی مفید باشد -D نمی تواند پشتیبانی کند
-U درشت دستور: تعریف ماکرو را تعریف نکنید
یک ماکرو تک خطی را تعریف نمیکند (ممکن است یک ماکرو داخلی باشد یا قبلاً تعریف شده است
در خط فرمان با -D.
مثال ها
برای جمع آوری نحو NASM، منبع 32 بیتی x86 source.asm در فایل ELF source.o، هشدار
برچسب های یتیم:
yasm -f elf32 -Worphan-labels source.asm
برای مونتاژ NASM syntax AMD64 source x.asm در فایل Win64 object.obj:
yasm -f win64 -o object.obj x.asm
برای جمع آوری دستور NASM از پیش پردازش شده x86 source y.asm در فایل باینری مسطح y.com:
Yasm -f bin -r raw -o y.com y.asm
عیب یابی
La یاسم دستور در صورت موفقیت از 0 خارج می شود و در صورت بروز خطا از صفر خارج می شود.
COMPATIBILITY
تجزیه کننده و پیش پردازشگر NASM Yasm، در حالی که آنها تلاش می کنند تا حد امکان سازگار باشند.
با NASM، به دلیل ساختار داخلی متفاوت YASM چند ناسازگاری دارند.
تجزیه کننده و پیش پردازشگر GAS Yasm تعدادی از ویژگی های موجود در GNU AS را ندارند.
محدودیت های
از آنجایی که فایل های شی اغلب به معماری و ماشین وابسته هستند، نه همه ترکیبات
قالبهای شی، معماریها و ماشینها قانونی هستند. تلاش برای استفاده از یک نامعتبر
ترکیبی منجر به خطا می شود.
هیچ پشتیبانی از نقشه های نماد وجود ندارد.
با استفاده از خدمات onworks.net از yasm به صورت آنلاین استفاده کنید