این دستور aarch64-linux-gnu-as است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
AS - اسمبلر قابل حمل گنو.
خلاصه
مانند [-a[cdghlns][=پرونده]] [--متناوب] [-D]
[--فشرده-اشکال-بخش ها] [-بخش های بدون فشرده سازی-اشکال زدایی]
[--debug-prefix-map قدیمی=جدید]
[--defsym همزاد=وال] [-f] [-g] [--gstabs]
[--gstabs+] [--gdwarf-2] [--قطعات gdwarf]
[--کمک] [-I دیر] [-J]
[-K] [-L] [--listing-lhs-width=NUM]
[--listing-lhs-width2=NUM] [--listing-rhs-width=NUM]
[--listing-cont-lines=NUM] [-- نگه داشتن - محلی ها]
[-o مبهم کردن] [-R]
[- اندازه هش=NUM] [--کاهش-سربار-حافظه]
[--آمار]
[-v] [-version] [- نسخه]
[-W] [-- هشدار] [- هشدارهای کشنده] [-w] [-x]
[-Z] [@فایل]
[--sectname-subst] [--size-check=[خطا|هشدار]]
[--هدف-کمک] [گزینه های هدف]
[--|فایل ها ...]
هدف AAArch64 گزینه ها:
[-EB|-The]
[-مابی=ABI]
هدف آلفا گزینه ها:
[-mپردازنده]
[-mdebug | -بدون mdebug]
[-جایگزین کردن | -noreplace]
[-آروم باش] [-g] [-Gاندازه]
[-F] [-32addr]
هدف ARC گزینه ها:
[-mcpu=پردازنده]
[-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS]
[-mcode-density]
[-EB|-The]
هدف ARM گزینه ها:
[-mcpu=پردازنده[+گسترش...]]
[-مارس=معماری[+گسترش...]]
[-mfpu=فرمت ممیز شناور]
[-mfloat-abi=ابی]
[-میابی=نسخه]
[-مهم]
[-EB|-The]
[-mapcs-32|-mapcs-26|-mapcs-float|
-mapcs-reentrant]
[-mthumb-interwork] [-k]
هدف بلک فین گزینه ها:
[-mcpu=پردازنده[-sirevision]]
[-mfdpic]
[-mno-fdpic]
[-منوپیک]
هدف CRIS گزینه ها:
[--خط | --بدون خط خط]
[-- عکس] [-N]
[تقلید = جنایت | --emulation=crisaout]
[-- March=v0_v10 | --مارس=v10 | --مارس=v32 | --march=common_v10_v32]
هدف D10V گزینه ها:
[-O]
هدف D30V گزینه ها:
[-O|-n|-N]
هدف حماسه گزینه ها:
[-مپیفانی|-مپیفانی16]
هدف H8 / 300 گزینه ها:
[-h-tick-hex]
هدف i386 گزینه ها:
[- 32|--x32|- 64] [-n]
[-مارس=پردازنده[+افزونه...]] [-mtune=پردازنده]
هدف i960 گزینه ها:
[-ACA|-ACA_A|-ACB|-ACC|-موسوم به|-AKB|
-AKC|-AMC]
[-b] [- بدون آرامش]
هدف IA-64 گزینه ها:
[-mconstant-gp|-عکس خودکار]
[-milp32|-milp64|-mlp64|-mp64]
[-مل|mba]
[-mtune=itanium1|-mtune=itanium2]
[-munwind-check=هشدار|-munwind-check=error]
[-mhint.b=ok|-mhint.b=اخطار|-mhint.b=خطا]
[-x|-xexplicit] [-xauto] [-xdebug]
هدف IP2K گزینه ها:
[-mip2022|-mip2022ext]
هدف M32C گزینه ها:
[-m32c|-m16c] [-رلکس] [-h-tick-hex]
هدف M32R گزینه ها:
[--m32rx|--[no-] warn-explicit-parallel-conflicts|
--W[n]p]
هدف M680X0 گزینه ها:
[-l] [-68000|-68010|-68020|...]
هدف M68HC11 گزینه ها:
[-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg]
[-mshort|-mlong]
[-mshort-double|-mlong-double]
[-- زور-شاخه های بلند] [--شاخه های کوتاه]
[- حالت دقیق مستقیم] [--print-insn-syntax]
[- کدهای چاپی] [--تولید-مثال]
هدف MCORE گزینه ها:
[-jsri2bsr] [سیفیلتر] [-آروم باش]
[-mcpu=[210|340]]
هدف متا گزینه ها:
[-mcpu=پردازنده] [-mfpu=پردازنده] [-mdsp=پردازنده] هدف میکروبلیز گزینه ها:
هدف میپس گزینه ها:
[-nocpp] [-The] [-EB] [-O[بهینه سازی سطح]]
[-g[اشکال زدایی کردن سطح]] [-G تعداد] [-KPIC] [-call_shared]
[-non_shared] [-xgot [-mvxworks-pic]
[-مابی=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
[-mfp64] [-mgp64] [-mfpxx]
[-modd-spreg] [-mno-odd-spreg]
[-مارس=پردازنده] [-mtune=پردازنده] [-mips1] [-mips2]
[-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2]
[-mips32r3] [-mips32r5] [-mips32r6] [-mips64] [-mips64r2]
[-mips64r3] [-mips64r5] [-mips64r6]
[-ساخت-شناور] [-بدون ساختار شناور می شود]
[-mnan=پشتیبانی می کند]
[-تله] [-هیچ استراحت] [-زنگ تفريح] [-بدون تله]
[-mips16] [-بدون mips16]
[-mmicromips] [-mno-micromips]
[-msmartmips] [-mno-smartmips]
[-mips3d] [-بدون mips3d]
[-mdmx] [-no-mdmx]
[-mdsp] [-mno-dsp]
[-mdspr2] [-mno-dspr2]
[-mmsa] [-mno-msa]
[-mxpa] [-mno-xpa]
[-mmt] [-mno-mt]
[-mmcu] [-mno-mcu]
[-minsn32] [-mno-insn32]
[-mfix7000] [-mno-fix7000]
[-mfix-rm7000] [-mno-fix-rm7000]
[-mfix-vr4120] [-mno-fix-vr4120]
[-mfix-vr4130] [-mno-fix-vr4130]
[-mdebug] [-بدون mdebug]
[-mpdr] [-mno-pdr]
هدف MMIX گزینه ها:
[--ثابت-ویژه-ثبت نامها] [--جهانی شدن-نمادها]
[--gnu-syntax] [--آروم باش] [--بدون-نمادهای از پیش تعریف شده]
[--بدون گسترش] [--no-merge-gregs] [-x]
[--linker-allocated-gregs]
هدف نیوس II گزینه ها:
[-آرامش کن] [بخش آرامش بخش] [- بدون آرامش]
[-EB] [-The]
هدف NDS32 گزینه ها:
[-The] [-EB] [-O] [-اواس] [-mcpu=پردازنده]
[-میسا=ISA] [-mabi=ابی] [-mall-ext]
[-m[no-]16 بیتی] [-m[no-]perf-ext] [-m[no-]perf2-ext]
[-m[no-]string-ext] [-m[no-]dsp-ext] [-m[no-]mac] [-m[no-]div]
[-m[no-]audio-isa-ext] [-m[no-]fpu-sp-ext] [-m[no-]fpu-dp-ext]
[-m[no-]fpu-fma] [-mfpu-freg=FREG] [-کاهش-regs]
[-mfull-regs] [-m[no-]dx-regs] [-مپیک] [-منو آرامش]
[-mb2bb]
هدف PDP11 گزینه ها:
[-مپیک|-mno-pic] [-مرکز خرید] [-mno-extensions]
[-mگسترش|-mno-گسترش]
[-mپردازنده] [-mدستگاه]
هدف پیکو جاوا گزینه ها:
[-MB|-م]
هدف PowerPC گزینه ها:
[-a32|-a64]
[-mpwrx|-mpwr2|-mpwr|-601|-mppc|-mppc32|-603|-604|-403|-405|
-440|-464|-476|-7400|-7410|-7450|-7455|-m750cl|-mppc64|
-620|-me500|-e500x2|-me500mc|-me500mc64|-me5500|-me6500|-mppc64bridge|
-mbooke|-power4|-mpwr4|-power5|-mpwr5|-mpwr5x|-power6|-mpwr6|
-power7|-mpwr7|-power8|-mpwr8|-power9|-mpwr9-ma2|
-mcell|-mspe|-متیتان|-me300|-mcom]
[-زیاد] [-مالتیفک|-mvsx|-mhtm|-mvle]
[-mregnames|-mno-regnames]
[-قابل جابجایی|-mrelocatable-lib|-K PIC] [-عضو]
[-کم|-mlittle-endian|-ل|-بزرگ|-mbig-endian|-بودن]
[-msolaris|-mno-solaris]
[-nops=تعداد دفعات مشاهده]
هدف RL78 گزینه ها:
[-mg10]
[-m32bit-دبل|-m64bit-دبل]
هدف RX گزینه ها:
[-mlittle-endian|-mbig-endian]
[-m32bit-دبل|-m64bit-دبل]
[-muse-conventional-section-names]
[-msmall-data-limit]
[-بی حال]
[-آرامش کن]
[-mint-register=عدد]
[-mgcc-abi|-mrx-abi]
هدف s390 گزینه ها:
[-31|-64] [-مسا|-مزارچ] [-مارس=پردازنده]
[-mregnames|-mno-regnames]
[-mwarn-areg-zero]
هدف SCORE گزینه ها:
[-EB][-The][-FIXDD][-اخطار]
[-امتیاز 5][-SCORE5U][-امتیاز 7][-امتیاز 3]
[-مارس=score7][-مارس=score3]
[-USE_R1][-KPIC][-O0][-G تعداد][-V]
هدف SPARC گزینه ها:
[-Av6|-Av7|-Av8|-اسپارکلت|-آسپارکلیت
-Av8plus|-Av8plusa|-Av9|-Av9a]
[-xarch=v8plus|-xarch=v8plusa] [دست انداز]
[-32|-64]
هدف TIC54X گزینه ها:
[-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf]
[-mirrors-to-file |-م ]
هدف TIC6X گزینه ها:
[-مارس=قوس] [-mbig-endian|-mlittle-endian]
[-mdsbt|-mno-dsbt] [-mpid=نه|-mpid=نزدیک|-mpid=دور]
[-مپیک|-mno-pic]
هدف TILE-Gx گزینه ها:
[-32|-64][-EB][-The]
هدف ویزیوم گزینه ها:
[-mtune=قوس]
هدف Xtensa گزینه ها:
[--[no-]text-section-literals] [--[no-] auto-litpools]
[--[no-]absolute-literals]
[--[no-]target-align] [--[بدون-]تماسهای طولانی]
[--[نه-]تبدیل شود]
[--تغییر نام-بخش نام قدیمی=نام جدید]
[--[نه-] ترامپولین]
هدف Z80 گزینه ها:
[-z80] [-r800]
[ -دستورالعمل های غیرمستند را نادیده بگیرید] [-ونود]
[ -دستورالعملها را نادیده گرفت] [-واناپ]
[ هشدار-غیر مستند-دستورالعمل] [-وود]
[ -warn-unportable-instructions] [-ووپ]
[ -دستورالعمل های ممنوع-غیر مستند] [-فود]
[ -دستورالعمل های ممنوع-غیرقابل حمل] [-فاپ]
شرح
گنو as واقعا یک خانواده مونتاژ کننده است. اگر از اسمبلر گنو استفاده می کنید (یا استفاده کرده اید).
یک معماری، وقتی از آن در معماری دیگر استفاده می کنید، باید یک محیط تقریباً مشابه پیدا کنید
معماری. هر نسخه اشتراکات زیادی با نسخه های دیگر دارد، از جمله فایل شی
فرمت ها، اکثر دستورالعمل های اسمبلر (که اغلب نامیده می شوند شبه عملیات) و نحو اسمبلر.
as در اصل برای جمع آوری خروجی کامپایلر GNU C "gcc" برای استفاده توسط
پیوند دهنده "ld". با این وجود، ما سعی کرده ایم که بسازیم as همه چیز را به درستی مونتاژ کنید
مونتاژ کننده های دیگر برای همان دستگاه مونتاژ می شوند. هرگونه استثناء مستند شده است
به صراحت این به این معنی نیست as همیشه از همان نحو به عنوان اسمبلر دیگر برای
همان معماری؛ به عنوان مثال، ما چندین نسخه ناسازگار از اسمبلی 680x0 را می شناسیم
نحو زبان
هر بار که می دوید as دقیقاً یک برنامه منبع را مونتاژ می کند. برنامه منبع ساخته شده است
از یک یا چند فایل (ورودی استاندارد نیز یک فایل است.)
شما می دهید as یک خط فرمان که نام فایل ورودی صفر یا بیشتر دارد. فایل های ورودی هستند
خواندن (از سمت چپ نام فایل به راست). آرگومان خط فرمان (در هر موقعیتی) که دارد
هیچ معنای خاصی به عنوان یک نام فایل ورودی در نظر گرفته نمی شود.
اگر بدهید as بدون نام فایل، سعی می کند یک فایل ورودی را از آن بخواند as استاندارد
ورودی، که معمولاً ترمینال شماست. ممکن است مجبور شوید تایپ کنید ctl-D گفتن as وجود ندارد
برنامه بیشتر برای مونتاژ
استفاده کنید -- اگر نیاز دارید که فایل ورودی استاندارد را به صراحت در خط فرمان خود نام ببرید.
اگر منبع خالی باشد، as یک فایل شی کوچک و خالی تولید می کند.
as ممکن است اخطارها و پیام های خطا را در فایل خطای استاندارد بنویسد (معمولاً شما
پایانه). زمانی که یک کامپایلر اجرا می شود نباید این اتفاق بیفتد as بطور خودکار. هشدارها
یک فرض را گزارش کنید تا as می تواند به مونتاژ یک برنامه معیوب ادامه دهد. گزارش خطاها
یک مشکل جدی که مونتاژ را متوقف می کند.
اگر استناد می کنید as از طریق کامپایلر گنو C، می توانید از -وا گزینه عبور
آرگومان ها از طریق اسمبلر آرگومان های اسمبلر باید از هر کدام جدا شوند
دیگر (و -وا) با کاما. مثلا:
gcc -c -g -O -Wa,-alh,-L file.c
این دو گزینه را به اسمبلر ارسال می کند: -الح (یک لیست به خروجی استاندارد با
سطح بالا و منبع مونتاژ) و -L (نمادهای محلی را در جدول نمادها حفظ کنید).
معمولاً نیازی به استفاده از این نیست -وا مکانیزم، از آنجایی که بسیاری از کامپایلرها خط فرمان
گزینه ها به طور خودکار توسط کامپایلر به اسمبلر ارسال می شوند. (می توانید با گنو تماس بگیرید
درایور کامپایلر با -v گزینه ای برای مشاهده دقیق اینکه چه گزینه هایی به هر کدام منتقل می شود
پاس کامپایل، از جمله اسمبلر.)
OPTIONS
@پرونده
گزینه های خط فرمان را از پرونده. گزینه های خوانده شده به جای گزینه درج می شوند
اصلی @پرونده گزینه. اگر پرونده وجود ندارد، یا نمی توان آن را خواند، پس گزینه
به معنای واقعی کلمه رفتار خواهد شد و حذف نخواهد شد.
گزینه ها در پرونده با فضای خالی از هم جدا می شوند. ممکن است یک کاراکتر فضای خالی گنجانده شود
در یک گزینه با احاطه کردن کل گزینه به صورت تک یا دو گیومه. هر
کاراکتر (از جمله بک اسلش) ممکن است با پیشوند کردن کاراکتر to be گنجانده شود
همراه با اسلش. در پرونده ممکن است خود حاوی @ اضافی باشدپرونده گزینه ها؛ هر
چنین گزینه هایی به صورت بازگشتی پردازش می شوند.
-a[cdghlmns]
فهرستها را به روشهای مختلف روشن کنید:
-ac شرط های نادرست را حذف کنید
-آگهی دستورات اشکال زدایی را حذف کنید
-اگ شامل اطلاعات کلی، مانند نسخه و گزینه های تصویب شده است
-هه شامل منبع سطح بالا
-ال شامل مونتاژ می شود
-صبح شامل توسعه های کلان است
من پردازش فرم ها را حذف کنید
-مانند شامل نمادها می شود
=پرونده
نام فایل لیست را تنظیم کنید
شما می توانید این گزینه ها را ترکیب کنید. به عنوان مثال، استفاده کنید -الن برای لیست اسمبلی بدون
پردازش فرم ها در =پرونده گزینه، در صورت استفاده، باید آخرین گزینه باشد. به خودی خود، -a
پیش فرض به -اهل.
--متناوب
در حالت ماکرو جایگزین شروع کنید.
--فشرده-اشکال-بخش ها
بخش های اشکال زدایی DWARF را با استفاده از zlib با SHF_COMPRESSED از ELF ABI فشرده کنید. در
ممکن است فایل شی به دست آمده با پیونددهنده های قدیمی و فایل شی سازگار نباشد
خدمات رفاهی. توجه داشته باشید که آیا فشرده سازی یک بخش مشخص را ایجاد می کند بزرگتر پس این نیست
فشرده شده
--compress-debug-sections=none
--compress-debug-sections=zlib
--compress-debug-sections=zlib-gnu
--compress-debug-sections=zlib-gabi
این گزینه ها نحوه فشرده شدن بخش های اشکال زدایی DWARF را کنترل می کنند.
--compress-debug-sections=none برابر است با -بخش های بدون فشرده سازی-اشکال زدایی.
--compress-debug-sections=zlib و --compress-debug-sections=zlib-gabi معادل هستند
به --فشرده-اشکال-بخش ها. --compress-debug-sections=zlib-gnu کوتوله را فشرده می کند
اشکال زدایی بخش ها با استفاده از zlib. بخش های اشکال زدایی برای شروع تغییر نام داده می شوند zdebug.
توجه داشته باشید که آیا فشرده سازی یک بخش مشخص را ایجاد می کند بزرگتر سپس فشرده نمی شود و نه
تغییر نام داد.
-بخش های بدون فشرده سازی-اشکال زدایی
بخش های اشکال زدایی DWARF را فشرده نکنید. این معمولاً پیش فرض برای همه اهداف است
به جز x86/x86_64، اما می توان از گزینه configure time برای لغو آن استفاده کرد.
-D نادیده گرفته شد. این گزینه برای سازگاری اسکریپت با تماس های دیگر پذیرفته شده است
مونتاژ کنندگان
--debug-prefix-map قدیمی=جدید
هنگام مونتاژ فایل ها در دایرکتوری قدیمی، اطلاعات اشکال زدایی را با توصیف آنها ضبط کنید
همانطور که در جدید به جای آن.
--defsym همزاد=ارزش
نماد را تعریف کنید همزاد به ارزش قبل از مونتاژ فایل ورودی ارزش باید باشد
ثابت عدد صحیح همانطور که در C، یک پیشرو 0x یک مقدار هگزادسیمال و یک پیشرو را نشان می دهد
0 یک مقدار هشتگانه را نشان می دهد. مقدار نماد را می توان در یک منبع نادیده گرفت
فایل را با استفاده از یک عملیات شبه ".set".
-f "سریع" --- پرش از فضای خالی و پیش پردازش نظر (فرض کنید منبع خروجی کامپایلر است).
-g
--gen-debug
اطلاعات اشکال زدایی را برای هر خط منبع اسمبلر با استفاده از هر اشکال زدایی ایجاد کنید
قالب توسط هدف ترجیح داده می شود. این در حال حاضر به معنی STABS، ECOFF یا
DWARF2.
--gstabs
اطلاعات اشکال زدایی stabs را برای هر خط اسمبلر ایجاد کنید. این ممکن است به رفع اشکال کمک کند
کد اسمبلر، اگر دیباگر بتواند آن را مدیریت کند.
--gstabs+
اطلاعات اشکال زدایی stabs را برای هر خط اسمبلر با پسوندهای گنو ایجاد کنید
احتمالاً فقط gdb می تواند کار کند، و این می تواند باعث خرابی یا امتناع سایر دیباگرها شود
برنامه خود را بخوانید این ممکن است به اشکال زدایی کد اسمبلر کمک کند. در حال حاضر تنها گنو
پسوند محل دایرکتوری کاری فعلی در زمان مونتاژ است.
--gdwarf-2
اطلاعات اشکال زدایی DWARF2 را برای هر خط اسمبلر تولید کنید. این ممکن است کمک کند
اشکال زدایی کد اسمبلر، اگر دیباگر بتواند آن را مدیریت کند. توجه --- فقط این گزینه است
توسط برخی از اهداف پشتیبانی می شود، نه همه آنها.
--قطعات gdwarf
به جای ایجاد یک بخش .debug_line، یک سری از .debug_line ایجاد کنید.فو بخش
جایی که فو نام بخش کد مربوطه است. به عنوان مثال یک بخش کد
نام .text.func اطلاعات شماره خط کوتوله آن در یک بخش قرار می گیرد
نام .debug_line.text.func. اگر بخش کد فقط فراخوانی شود متن سپس اشکال زدایی کنید
بخش خط همچنان فقط نامیده می شود .debug_line بدون هیچ پسوندی
--size-check=error
--size-check=اخطار
یک خطا یا اخطار برای دستورالعمل نامعتبر اندازه ELF صادر کنید.
--کمک
خلاصه ای از گزینه های خط فرمان را چاپ کنید و از آن خارج شوید.
--هدف-کمک
خلاصه ای از تمام گزینه های خاص هدف را چاپ کنید و از آن خارج شوید.
-I دیر
دایرکتوری اضافه کنید دیر به لیست جستجوی دستورالعمل های ".include".
-J در مورد سرریز امضا شده هشدار ندهید.
-K هنگامی که جداول اختلاف برای جابجایی های طولانی تغییر می کند، هشدار صادر کنید.
-L
-- نگه داشتن - محلی ها
نمادهای محلی (در جدول نمادها) را نگه دارید. این نمادها با سیستم خاص شروع می شوند
معمولاً پیشوندهای برچسب محلی .L برای سیستم های ELF یا L برای سیستم های a.out سنتی
--listing-lhs-width=عدد
حداکثر عرض ستون دادههای خروجی را برای فهرست اسمبلر در قالب کلمات تنظیم کنید
عدد.
--listing-lhs-width2=عدد
حداکثر عرض ستون دادههای خروجی را برای خطوط ادامه به صورت کلمات تنظیم کنید
لیست اسمبلر به عدد.
--listing-rhs-width=عدد
حداکثر عرض یک خط منبع ورودی را همانطور که در فهرست نشان داده شده است، تنظیم کنید عدد
بایت
--listing-cont-lines=عدد
حداکثر تعداد خطوط چاپ شده در فهرست را برای یک خط ورودی تنظیم کنید
عدد + 1
-o مبهم کردن
نام خروجی فایل شی را از as مبهم کردن.
-R قسمت داده را در قسمت متن تا کنید.
--hash-size=عدد
اندازه پیشفرض جداول هش GAS را روی عدد اول نزدیک به تنظیم کنید عدد.
افزایش این مقدار می تواند مدت زمانی را که برای کار اسمبلر صرف می کند کاهش دهد
وظایف آن، به قیمت افزایش نیازهای حافظه اسمبلر.
به طور مشابه کاهش این مقدار می تواند نیازهای حافظه را به قیمت کاهش دهد
سرعت.
--کاهش-سربار-حافظه
این گزینه نیاز به حافظه GAS را کاهش می دهد و هزینه ساخت مونتاژ می شود
کندتر پردازش می کند در حال حاضر این سوئیچ مترادف آن است --hash-size=4051، اما در
در آینده ممکن است اثرات دیگری نیز داشته باشد.
--sectname-subst
دنباله های جایگزین افتخار در نام بخش.
--آمار
حداکثر فاصله (بر حسب بایت) و زمان کل (بر حسب ثانیه) استفاده شده توسط مونتاژ را چاپ کنید.
نوار-محلی-مطلق
نمادهای مطلق محلی را از جدول نمادهای خروجی حذف کنید.
-v
-version
چاپ کردن as نسخه.
- نسخه
چاپ کردن as نسخه و خروج
-W
-- بدون هشدار
پیام های هشدار را سرکوب کنید.
- هشدارهای کشنده
هشدارها را به عنوان خطا در نظر بگیرید.
-- هشدار
پیام های هشدار را سرکوب نکنید و آنها را به عنوان خطا تلقی نکنید.
-w نادیده گرفته شد.
-x نادیده گرفته شد.
-Z حتی پس از خطا، یک فایل شی تولید کنید.
-- | فایل ها ...
ورودی استاندارد یا فایل های منبع برای مونتاژ.
هنگامی که برای حالت 64 بیتی ARM پیکربندی شده است، گزینه های زیر در دسترس هستند
معماری (AAarch64).
-EB این گزینه مشخص می کند که خروجی تولید شده توسط اسمبلر باید به صورت علامت گذاری شود
برای یک پردازنده بزرگ اندین کدگذاری شده است.
-The این گزینه مشخص می کند که خروجی تولید شده توسط اسمبلر باید به صورت علامت گذاری شود
برای یک پردازنده کوچک اندین کدگذاری شده است.
-mabi=ابی
مشخص کنید کد منبع از کدام ABI استفاده می کند. آرگومان های شناسایی شده عبارتند از: "ilp32" و
"lp64"، که فایل شی تولید شده را در قالب ELF32 و ELF64 تعیین می کند
به ترتیب. پیش فرض "lp64" است.
-mcpu=پردازنده[+گسترش...]
این گزینه پردازنده هدف را مشخص می کند. اسمبلر یک پیغام خطا صادر می کند
اگر تلاشی برای جمع آوری دستورالعملی انجام شود که روی هدف اجرا نشود
پردازنده نامهای پردازنده زیر شناخته میشوند: "cortex-a35"، "cortex-a53"،
"cortex-a57"، "cortex-a72"، "exynos-m1"، "qdf24xx"، "thunderx"، "xgene1" و "xgene2".
نام ویژه "همه" ممکن است برای اجازه دادن به اسمبلر برای پذیرش دستورالعمل های معتبر استفاده شود
برای هر پردازنده پشتیبانی شده، از جمله تمام پسوندهای اختیاری.
علاوه بر مجموعه دستورات اولیه، می توان به اسمبلر گفت که قبول کند، یا
محدود کردن، یادداشت های پسوندی مختلف که پردازنده را گسترش می دهند.
اگر برخی از پیاده سازی های یک پردازنده خاص می توانند پسوند داشته باشند، پس
آن افزونه ها به طور خودکار فعال می شوند. در نتیجه، شما معمولا نخواهید داشت
برای مشخص کردن هر گونه پسوند اضافی.
-مارس=معماری[+گسترش...]
این گزینه معماری هدف را مشخص می کند. اسمبلر یک خطا صادر می کند
اگر تلاشی برای جمعآوری دستورالعملی انجام شود که روی آن اجرا نمیشود پیام دهید
معماری هدف نامهای معماری زیر شناخته میشوند: "armv8-a"،
"armv8.1-a" و "armv8.2-a".
اگر هر دو -mcpu و -مارس مشخص شده است، اسمبلر از تنظیمات برای استفاده می کند -mcpu.
اگر هیچکدام مشخص نشده باشد، اسمبلر به طور پیش فرض روی خواهد داد -mcpu=all.
گزینه معماری را می توان با همان پسوند مجموعه دستورالعمل گسترش داد
گزینه ها به عنوان -mcpu گزینه. بر خلاف -mcpu، برنامه های افزودنی همیشه توسط فعال نمی شوند
پیش فرض،
-mverbose-error
این گزینه پیام های خطای پرمخاطب را برای گاز AArch64 فعال می کند. این گزینه توسط
به طور پیش فرض
-mno-verbose-error
این گزینه پیام های خطای مفصل را در گاز AArch64 غیرفعال می کند.
هنگامی که برای یک پردازنده آلفا پیکربندی شده است، گزینه های زیر در دسترس هستند.
-mپردازنده
این گزینه پردازنده هدف را مشخص می کند. اگر تلاشی برای مونتاژ یک
دستوراتی که روی پردازنده هدف اجرا نمی شود، اسمبلر نیز ممکن است
دستورالعمل را به صورت ماکرو گسترش دهید یا یک پیام خطا صادر کنید. این گزینه است
معادل دستورالعمل ".arch".
نامهای پردازنده زیر شناسایی شدهاند: 21064، "21064a"، 21066، 21068، 21164،
"21164a"، "21164pc"، 21264، "21264a"، "21264b"، "ev4"، "ev5"، "lca45"، "ev5"، "ev56"،
"pca56"، "ev6"، "ev67"، "ev68". نام ویژه "همه" ممکن است برای اجازه دادن به استفاده شود
اسمبلر برای پذیرش دستورالعمل های معتبر برای هر پردازنده آلفا.
به منظور حمایت از عملکرد موجود در OSF/1 با توجه به ".arch"، و موجود
تمرین در داخل میلو (بوتلودر ARC لینوکس)، نامهای پردازندههای شمارهدار (مثلاً
21064) دستورالعمل های PALcode مخصوص پردازنده را فعال کنید، در حالی که "الکترو-ولاسیک"
نام ها (به عنوان مثال "ev4") این کار را نمی کنند.
-mdebug
-بدون mdebug
تولید محصورسازی «.mdebug» را برای دستورالعملهای stabs فعال یا غیرفعال میکند.
توصیفگرهای رویه پیش فرض این است که به طور خودکار ".mdebug" را در زمانی که
اولین دستورالعمل خنجر دیده می شود.
-آروم باش
این گزینه همه جابجایی ها را مجبور می کند به جای ذخیره، در فایل شی قرار داده شوند
فضا و رفع برخی جابجایی ها در زمان مونتاژ. توجه داشته باشید که این گزینه ندارد
همه محاسبات نمادها را در فایل شی منتشر کنید، زیرا نه همه نمادها
می توان حساب را نشان داد. با این حال، این گزینه هنوز هم می تواند در موارد خاص مفید باشد
برنامه های کاربردی.
-جایگزین کردن
-noreplace
بهینه سازی فراخوانی های رویه را هم در مجموعه و هم در ساعت فعال یا غیرفعال می کند
زمان پیوند این گزینه ها فقط برای اهداف VMS در دسترس هستند و "-replace" همان است
پیش فرض به بخش 1.4.1 کتابچه راهنمای OpenVMS Linker Utility مراجعه کنید.
-g این گزینه زمانی استفاده می شود که کامپایلر اطلاعات اشکال زدایی را تولید کند. چه زمانی gcc در حال استفاده
mips-tfile برای تولید اطلاعات اشکال زدایی برای ECOFF، برچسب های محلی باید ارسال شوند
از طریق فایل شی. در غیر این صورت این گزینه تاثیری ندارد.
-Gاندازه
نماد مشترک محلی بزرگتر از اندازه در ".bss" قرار می گیرد، در حالی که نمادهای کوچکتر هستند
قرار داده شده در ".sbss".
-F
-32addr
این گزینه ها برای سازگاری با عقب نادیده گرفته می شوند.
هنگامی که برای یک پردازنده ARC پیکربندی شده است، گزینه های زیر در دسترس هستند.
-mcpu=پردازنده
این گزینه نوع پردازنده اصلی را انتخاب می کند.
-EB | -The
خروجی big-endian (-EB) یا small-edian (-EL) را انتخاب کنید.
-mcode-density
دستورالعمل های برنامه افزودنی Code Density را فعال کنید.
هنگامی که برای خانواده پردازنده های ARM پیکربندی شده است، گزینه های زیر در دسترس هستند.
-mcpu=پردازنده[+گسترش...]
نوع پردازنده ARM مورد نظر را مشخص کنید.
-مارس=معماری[+گسترش...]
مشخص کنید که کدام نوع معماری ARM توسط هدف استفاده می شود.
-mfpu=فرمت ممیز شناور
معماری نقطه شناور مورد نظر را انتخاب کنید.
-mfloat-abi=ابی
انتخاب کنید که از کدام نقطه شناور ABI استفاده می شود.
-مهم
رمزگشایی دستورالعمل فقط Thumb را فعال کنید.
-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
انتخاب کنوانسیون فراخوانی رویه ای که استفاده می شود.
-EB | -The
خروجی big-endian (-EB) یا small-edian (-EL) را انتخاب کنید.
-mthumb-interwork
مشخص کنید که کد با تعامل بین کد Thumb و ARM ایجاد شده است
در فکر.
-mccs
حالت سازگاری نحو اسمبلی CodeComposer Studio را روشن می کند.
-k مشخص کنید که کد PIC تولید شده است.
هنگامی که برای پردازنده Blackfin پیکربندی شده است، گزینه های زیر در دسترس هستند
خانواده.
-mcpu=پردازنده[-sirevision]
این گزینه پردازنده هدف را مشخص می کند. اختیاری sirevision در استفاده نمی شود
مونتاژ کننده اینجا به گونه ای است که GCC می تواند به راحتی گزینه "-mcpu=" خود را پاس کند. در
در صورت تلاش برای مونتاژ یک دستورالعمل، اسمبلر پیغام خطا صادر می کند
که روی پردازنده هدف اجرا نخواهد شد. نام پردازنده های زیر می باشد
شناسایی شده: "bf504"، "bf506"، "bf512"، "bf514"، "bf516"، "bf518"، "bf522"، "bf523"،
"bf524"، "bf525"، "bf526"، "bf527"، "bf531"، "bf532"، "bf533"، "bf534"، "bf535" (نه
هنوز اجرا شده است)، "bf536"، "bf537"، "bf538"، "bf539"، "bf542"، "bf542m"، "bf544"،
"bf544m"، "bf547"، "bf547m"، "bf548"، "bf548m"، "bf549"، "bf549m"، "bf561"، و
"bf592".
-mfdpic
برای FDPIC ABI جمع آوری کنید.
-mno-fdpic
-منوپیک
-mfdpic را غیرفعال کنید.
برای مستندسازی گزینه های خاص CRIS به صفحات اطلاعات مراجعه کنید.
هنگامی که برای یک پردازنده D10V پیکربندی شده است، گزینه های زیر در دسترس هستند.
-O خروجی را با موازی سازی دستورالعمل ها بهینه کنید.
هنگامی که برای یک پردازنده D30V پیکربندی شده است، گزینه های زیر در دسترس هستند.
-O خروجی را با موازی سازی دستورالعمل ها بهینه کنید.
-n هنگام ایجاد نوپ هشدار دهید.
-N هنگامی که یک نوپ پس از یک دستور ضرب 32 بیتی ایجاد شد، هشدار دهید.
هنگامی که برای یک پردازنده Epiphany پیکربندی شده است، گزینه های زیر در دسترس هستند.
-مپیفانی
مشخص می کند که هر دو دستورالعمل 32 و 16 بیت مجاز هستند. این پیش فرض است
رفتار.
-مپیفانی16
دستورالعمل های مجاز را فقط به مجموعه 16 بیتی محدود می کند.
هنگامی که برای پردازنده H8/300 پیکربندی شده است، گزینه های زیر در دسترس هستند.
@chapter H8/300 Dependent Features
گزینه
نسخه Renesas H8/300 "as" یک گزینه وابسته به ماشین دارد:
-h-تیک-هگز
علاوه بر سبک 00x0، از ثابتهای هگز سبک H'00 پشتیبانی کنید.
-mach=نام
نوع ماشین H8300 را تنظیم می کند. نام ماشین های زیر شناسایی می شود: "h8300h"،
"h8300hn"، "h8300s"، "h8300sn"، "h8300sx" و "h8300sxn".
هنگامی که برای یک پردازنده i386 پیکربندی شده است، گزینه های زیر در دسترس هستند.
- 32 | --x32 | - 64
اندازه کلمه را انتخاب کنید، 32 بیت یا 64 بیت. - 32 دلالت بر اینتل i386 دارد
معماری، در حالی که --x32 و - 64 شامل معماری AMD x86-64 با 32 بیت یا 64 بیت است
به ترتیب اندازه کلمه
این گزینهها فقط با فرمت فایل شی ELF در دسترس هستند و به این نیاز دارند
پشتیبانی لازم BFD گنجانده شده است (در یک پلت فرم 32 بیتی باید اضافه کنید
--enable-64-bit-bfd برای پیکربندی فعال کردن استفاده 64 بیتی و استفاده از x86-64 به عنوان هدف
سکو).
-n بهطور پیشفرض، x86 GAS جایگزین دستورالعملهای nop متعددی است که برای تراز کردن در کد استفاده میشوند
بخش هایی با دستورالعمل های نوپ چند بایتی مانند leal 0(%esi,1)،%esi. این سوئیچ
بهینه سازی را غیرفعال می کند
-- تقسیم کردن
در پلتفرم های مشتق شده از SVR4، شخصیت / به عنوان یک کاراکتر نظر در نظر گرفته می شود که
یعنی نمی توان از آن در عبارات استفاده کرد. در -- تقسیم کردن گزینه تبدیل می شود / به
شخصیت معمولی این غیرفعال نمی شود / در ابتدای خطی که از a شروع می شود
نظر دهید، یا استفاده را تحت تأثیر قرار دهید # برای شروع نظر
-مارس=پردازنده[+افزونه...]
این گزینه پردازنده هدف را مشخص می کند. اسمبلر یک پیغام خطا صادر می کند
اگر تلاشی برای جمع آوری دستورالعملی انجام شود که روی هدف اجرا نشود
پردازنده نامهای پردازنده زیر شناسایی میشوند: "i8086"، "i186"، "i286"،
"i386"، "i486"، "i586"، "i686"، "pentium"، "pentiumpro"، "pentiumi"، "pentiumiii"،
"pentium4"، "prescott"، "nocona"، "core"، "core2"، "corei7"، "l1om"، "k1om"، "iamcu"،
"k6"، "k6_2"، "athlon"، "opteron"، "k8"، "amdfam10"، "bdver1"، "bdver2"، "bdver3"،
"bdver4"، "znver1"، "btver1"، "btver2"، "generic32" و "generic64".
علاوه بر مجموعه دستورالعمل های اولیه، می توان به اسمبلر گفت که موارد مختلفی را بپذیرد
یادداشت های توسعه ای به عنوان مثال، "-march=i686+sse4+vmx" گسترش می یابد i686 با sse4 و
vmx. برنامه های افزودنی زیر در حال حاضر پشتیبانی می شوند: 8087، 287، 387، "no87"، "mmx"،
"nommx"، "sse"، "sse2"، "sse3"، "ssse3"، "sse4.1"، "sse4.2"، "sse4"، "nosse"، "avx"،
"avx2"، "adx"، "rdseed"، "prfchw"، "smap"، "mpx"، "sha"، "prefetchwt1"، "clflushopt"،
"se1"، "clwb"، "pcommit"، "avx512f"، "avx512cd"، "avx512er"، "avx512pf"، "avx512vl"،
"avx512bw"، "avx512dq"، "avx512ifma"، "avx512vbmi"، "noavx"، "vmx"، "vmfunc"، "smx"،
"xsave"، "xsaveopt"، "xsavec"، "xsaves"، "aes"، "pclmul"، "fsgsbase"، "rdrnd"، "f16c"،
"bmi2"، "fma"، "movbe"، "ept"، "lzcnt"، "hle"، "rtm"، "invpcid"، "clflush"، "mwaitx"،
"clzero"، "lwp"، "fma4"، "xop"، "cx16"، "syscall"، "rdtscp"، "3dnow"، "3dnowa"،
"sse4a"، "sse5"، "svme"، "abm" و "قفل قفل". توجه داشته باشید که به جای گسترش یک پایه
مجموعه دستورالعمل، یادداشت های پسوندی که با "نه" شروع می شود، مربوطه را لغو می کند
عملکرد.
هنگامی که دستورالعمل ".arch" با استفاده می شود -مارس، دستورالعمل ".arch" خواهد شد
سابقه
-mtune=پردازنده
این گزینه یک پردازنده را برای بهینه سازی مشخص می کند. هنگامی که همراه با استفاده می شود
-مارس گزینه، فقط دستورالعمل های پردازنده مشخص شده توسط -مارس گزینه خواهد شد
تولید شود.
معتبر پردازنده مقادیر با لیست پردازنده یکسان هستند -مارس=پردازنده.
-msse2avx
این گزینه مشخص می کند که اسمبلر باید دستورالعمل های SSE را با VEX رمزگذاری کند
پیشوند
-msse-check=هیچ
-msse-check=هشدار
-msse-check=خطا
این گزینه ها کنترل می کنند که آیا اسمبلر باید دستورالعمل های SSE را بررسی کند.
-msse-check=هیچ باعث می شود اسمبلر دستورالعمل های SSE را بررسی نکند، که این است
به طور پیش فرض -msse-check=هشدار باعث می شود اسمبلر یک هشدار برای هر SSE صادر کند
دستورالعمل -msse-check=خطا باعث می شود اسمبلر برای هر SSE خطایی صادر کند
دستورالعمل
-mavxscalar=128
-mavxscalar=256
این گزینه ها نحوه کدگذاری دستورات اسکالر AVX توسط اسمبلر را کنترل می کنند.
-mavxscalar=128 دستورالعمل های AVX اسکالر را با طول برداری 128 بیتی رمزگذاری می کند که
پیش فرض است. -mavxscalar=256 دستورالعمل های اسکالر AVX را با 256 بیت رمزگذاری می کند
طول برداری
-mevexlig=128
-mevexlig=256
-mevexlig=512
این گزینه ها کنترل می کنند که اسمبلر چگونه باید EVEX با طول نادیده گرفته شده (LIG) را رمزگذاری کند
دستورالعمل. -mevexlig=128 دستورالعمل های LIG EVEX را با بردار 128 بیتی رمزگذاری می کند
طول، که پیش فرض است. -mevexlig=256 و -mevexlig=512 LIG EVEX را رمزگذاری می کند
دستورالعمل هایی با طول برداری 256 بیتی و 512 بیتی، به ترتیب.
-mevexwig=0
-mevexwig=1
این گزینه ها کنترل می کنند که اسمبلر چگونه باید EVEX (WIG) را رمزگذاری کند
دستورالعمل. -mevexwig=0 دستورات WIG EVEX را با evex.w = 0 رمزگذاری می کند که این است
پیشفرض. -mevexwig=1 دستورالعمل های WIG EVEX را با evex.w = 1 رمزگذاری می کند.
-mmnemonic=att
-mmnemonic=اینتل
این گزینه یادداشت دستورالعمل را برای مطابقت دستورالعمل ها مشخص می کند. در
دستورالعمل های ".att_mnemonic" و ".intel_mnemonic" مقدم خواهند بود.
-msyntax=att
-msyntax=اینتل
این گزینه هنگام پردازش دستورالعمل ها، نحو دستور را مشخص می کند. در
دستورالعمل های ".att_syntax" و ".intel_syntax" مقدم خواهند بود.
-mnaked-reg
این گزینه مشخص می کند که رجیسترها به a نیاز ندارند % پیشوند ".att_syntax" و
دستورالعمل های ".intel_syntax" مقدم خواهند بود.
-madd-bnd-پیشوند
این گزینه اسمبلر را مجبور می کند که پیشوند BND را به همه شاخه ها اضافه کند، حتی اگر چنین باشد
پیشوند به صراحت در کد منبع مشخص نشده بود.
-mno-اشتراک گذاری شده
در هدف ELF، اسمبلر معمولاً جابجایی های غیر PLT را بهینه می کند
اهداف شاخه جهانی غیر ضعیف را با دید پیش فرض تعریف کرد. را -mshared انتخاب
به اسمبلر می گوید کدی را تولید کند که ممکن است به یک کتابخانه مشترک برود که در آن همه غیر
می توان از اهداف شاخه جهانی ضعیف با دید پیش فرض جلوگیری کرد. نتیجه
کد کمی بزرگتر است این گزینه فقط بر نحوه رسیدگی به شعبه تأثیر می گذارد
دستورالعمل.
-mbig-obj
در x86-64 PE/COFF هدف، این گزینه استفاده از فرمت فایل شی بزرگ را مجبور می کند
اجازه می دهد تا بیش از 32768 بخش.
-momit-lock-prefix=نه
-momit-lock-prefix=بله
این گزینه ها کنترل می کنند که اسمبلر چگونه باید پیشوند قفل را رمزگذاری کند. این گزینه است
در نظر گرفته شده به عنوان راه حلی برای پردازنده هایی که در پیشوند قفل شکست می خورند. این گزینه می تواند
فقط با کامپیوترهای تک هسته ای و تک رشته ای با خیال راحت استفاده شود -momit-lock-prefix=بله
تمام پیشوندهای قفل را حذف می کند. -momit-lock-prefix=نه پیشوند قفل را به طور معمول رمزگذاری می کند،
که پیش فرض است.
-mrelax-relocations=نه
-mrelax-relocations=بله
این گزینه ها کنترل می کنند که آیا اسمبلر باید جابجایی های آرامش را ایجاد کند یا خیر.
R_386_GOT32X، در حالت 32 بیتی، یا R_X86_64_GOTPCRELX و R_X86_64_REX_GOTPCRELX، در
حالت 64 بیتی -mrelax-relocations=بله جابجایی های آرام ایجاد خواهد کرد.
-mrelax-relocations=نه جابجایی آرامش ایجاد نخواهد کرد. پیش فرض می تواند باشد
توسط یک گزینه پیکربندی کنترل می شود --enable-x86-relaks-relocations.
-mevexrcig=RNE
-mevexrcig=rd
-mevexrcig=ru
-mevexrcig=rz
این گزینهها کنترل میکنند که چگونه اسمبلر باید دستورالعملهای EVEX فقط SAE را رمزگذاری کند.
-mevexrcig=RNE بیتهای RC دستورالعمل EVEX را با 00 که پیشفرض است، رمزگذاری میکند.
-mevexrcig=rd, -mevexrcig=ru و -mevexrcig=rz دستورالعمل های EVEX فقط SAE را رمزگذاری می کند
به ترتیب با 01، 10 و 11 بیت RC.
-mamd64
-mintel64
این گزینه مشخص میکند که اسمبلر باید فقط AMD64 یا Intel64 ISA را بپذیرد
حالت 64 بیتی پیش فرض پذیرفتن هر دو است.
هنگامی که برای پردازنده Intel 80960 پیکربندی شده است، گزینه های زیر در دسترس هستند.
-ACA | -ACA_A | -ACB | -ACC | -موسوم به | -AKB | -AKC | -AMC
مشخص کنید که کدام نوع از معماری 960 مورد نظر است.
-b برای جمع آوری آمار در مورد شاخه های گرفته شده کد اضافه کنید.
- بدون آرامش
دستورالعمل های مقایسه و انشعاب را برای جابجایی های طولانی تغییر ندهید. خطا اگر
لازم است
هنگامی که برای سری Ubicom IP2K پیکربندی شده است، گزینه های زیر در دسترس هستند.
-mip2022ext
مشخص می کند که دستورالعمل های IP2022 توسعه یافته مجاز هستند.
-mip2022
رفتار پیشفرض را بازیابی میکند، که دستورالعملهای مجاز را فقط محدود میکند
IP2022 پایه
هنگامی که برای Renesas M32C و M16C پیکربندی شده است، گزینه های زیر در دسترس هستند
پردازنده ها
-m32c
دستورالعمل های M32C را جمع آوری کنید.
-m16c
دستورالعمل های M16C (پیش فرض) را جمع آوری کنید.
-آروم باش
فعال کردن پشتیبانی برای آرامش زمان پیوند.
-h-تیک-هگز
علاوه بر سبک 00x0، از ثابتهای هگز سبک H'00 پشتیبانی کنید.
هنگامی که برای Renesas M32R پیکربندی شده است، گزینه های زیر در دسترس هستند (قبلا
سری Mitsubishi M32R).
--m32rx
مشخص کنید که کدام پردازنده از خانواده M32R مورد نظر است. به طور معمول پیش فرض است
M32R، اما این گزینه آن را به M32RX تغییر می دهد.
-- هشدار - صریح - موازی - درگیری or --Wp
هنگامی که سازه های موازی مشکوک مواجه می شوند، پیام های هشدار ایجاد کنید.
--بدون هشدار، درگیری های موازی or --Wnp
در صورت مواجهه با ساختارهای موازی مشکوک، پیام هشدار تولید نکنید.
هنگامی که برای سری موتورولا 68000 پیکربندی شده است، گزینه های زیر در دسترس هستند.
-l ارجاع به نمادهای تعریف نشده را به جای دو کلمه به یک کلمه کوتاه کنید.
-68000 | -68008 | -68010 | -68020 | -68030
| -68040 | -68060 | -68302 | -68331 | -68332
| -68333 | -68340 | -mcpu32 | -5200
مشخص کنید که کدام پردازنده در خانواده 68000 مورد نظر است. به طور معمول پیش فرض است
68020، اما این را می توان در زمان پیکربندی تغییر داد.
-68881 | -68882 | -mno-68881 | -mno-68882
ماشین هدف دارای یک پردازنده مشترک ممیز شناور است (یا ندارد). پیشفرض
این است که یک پردازنده مشترک برای 68020، 68030 و cpu32 در نظر بگیریم. اگرچه پایه 68000 است
با 68881 سازگار نیست، ترکیبی از این دو را می توان مشخص کرد، زیرا
امکان شبیه سازی دستورالعمل های کمک پردازنده با پردازنده اصلی وجود دارد.
-68851 | -mno-68851
ماشین هدف دارای یک پردازنده مشترک واحد مدیریت حافظه است (یا ندارد). در
پیش فرض این است که یک MMU را برای 68020 و بالاتر فرض کنیم.
هنگامی که برای یک پردازنده Altera Nios II پیکربندی شده است، گزینه های زیر در دسترس هستند.
بخش آرامش بخش
هنگامی که شاخه های خارج از محدوده شناسایی شده را با دنباله های "jmp" مربوط به PC جایگزین کنید
ممکن است. توالی کد تولید شده برای استفاده در موقعیت مستقل مناسب هستند
کد، اما محدودیت عملی در محدوده شاخه توسعه یافته به دلیل وجود دارد
طول دنباله ها این گزینه پیش فرض است.
-آرامش کن
دستورالعمل های شاخه غیر قابل تعیین را جایگزین کنید تا در محدوده باشد و همه دستورالعمل های فراخوانی
با دنباله های "jmp" و "callr" (به ترتیب). این گزینه مطلق تولید می کند
جابجایی در برابر نمادهای هدف و برای مستقل از موقعیت مناسب نیست
کد
- بدون آرامش
هیچ شعبه یا تماسی را تعویض نکنید.
-EB خروجی بزرگ اندین تولید کنید.
-The خروجی اندکی اندین تولید کنید. این پیش فرض است.
-مارس=معماری
این گزینه معماری هدف را مشخص می کند. اسمبلر یک پیغام خطا صادر می کند
اگر تلاشی برای جمع آوری دستورالعملی انجام شود که روی هدف اجرا نشود
معماری. نامهای معماری زیر شناخته میشوند: "r1"، "r2". در
پیش فرض "r1" است.
هنگامی که برای یک متا پردازنده پیکربندی شده است، گزینه های زیر در دسترس هستند.
"-mcpu=metac11"
ایجاد کد برای متا 1.1.
"-mcpu=metac12"
ایجاد کد برای متا 1.2.
"-mcpu=metac21"
ایجاد کد برای متا 2.1.
"-mfpu=metac21"
به کد اجازه دهید از سخت افزار FPU متا 2.1 استفاده کند.
برای مستندسازی گزینه های خاص MMIX به صفحات اطلاعات مراجعه کنید.
هنگامی که برای پردازنده NDS32 پیکربندی شده است، گزینه های زیر در دسترس هستند.
"-O1"
بهینه سازی برای عملکرد
"-Os"
بهینه سازی فضا
"-EL"
خروجی داده اندین اندکی تولید کنید.
"-EB"
خروجی داده اندین اندکی تولید کنید.
"-mpic"
تولید PIC
"-mno-fp-as-gp-relax"
آرامش fp-as-gp را برای این فایل متوقف کنید.
"-mb2bb-relax"
بهینه سازی شاخه پشت به پشت.
"-mno-all-relax"
تمام آرامش را برای این فایل سرکوب کنید.
"-مارس= "
برای معماری مونتاژ کنید که می تواند v3، v3j، v3m، v3f، v3s، v2، v2j،
v2f، v2s.
"-mbaseline= "
برای خط پایه جمع آوری کنید که می تواند v2، v3، v3m باشد.
"-mfpu-freg=FREG"
یک پیکربندی FPU را مشخص کنید.
"رجیسترهای 0 8 SP / 4 DP"
"رجیسترهای 1 16 SP / 8 DP"
"رجیسترهای 2 32 SP / 16 DP"
"رجیسترهای 3 32 SP / 32 DP"
"-mabi=آبی"
یک نسخه abi را مشخص کنید می تواند v1، v2، v2fp، v2fpp باشد.
"-m[no-]mac"
فعال/غیرفعال کردن پشتیبانی از دستورالعملهای Multiply.
"-m[no-]div"
فعال/غیرفعال کردن پشتیبانی از دستورالعمل های تقسیم.
"-m[no-]16bit-ext"
فعال/غیرفعال کردن پسوند 16 بیتی
"-m[no-]dx-regs"
فعال/غیرفعال کردن رجیسترهای d0/d1
"-m[no-]perf-ext"
فعال/غیرفعال کردن برنامه افزودنی عملکرد
"-m[no-]perf2-ext"
فعال/غیرفعال کردن افزونه عملکرد ۲
"-m[no-]string-ext"
فعال/غیرفعال کردن پسوند رشته
"-m[no-]reduced-regs"
گزینه تنظیمات ثبت نام کاهش یافته (GPR16) را فعال/غیرفعال کنید
"-m[no-]audio-isa-ext"
فعال/غیرفعال کردن برنامه افزودنی AUDIO ISA
"-m[no-]fpu-sp-ext"
فعال/غیرفعال کردن افزونه FPU SP
"-m[no-]fpu-dp-ext"
فعال/غیرفعال کردن افزونه FPU DP
"-m[no-]fpu-fma"
دستورالعملهای FPU Fused-Multiply-Add را فعال/غیرفعال کنید
"-mall-ext"
همه برنامههای افزودنی و پشتیبانی دستورالعملها را روشن کنید
هنگامی که برای یک پردازنده PowerPC پیکربندی شده است، گزینه های زیر در دسترس هستند.
-a32
ELF32 یا XCOFF32 را تولید کنید.
-a64
ELF64 یا XCOFF64 را تولید کنید.
-K PIC
EF_PPC_RELOCATABLE_LIB را در پرچمهای ELF تنظیم کنید.
-mpwrx | -mpwr2
کد برای POWER/2 (RIOS2) تولید کنید.
-mpwr
ایجاد کد برای POWER (RIOS1)
-601
کد برای PowerPC 601 تولید کنید.
-mppc، -mppc32، -m603، -604
کد برای PowerPC 603/604 تولید کنید.
-m403، -405
کد برای PowerPC 403/405 تولید کنید.
-440
کد PowerPC 440 را ایجاد کنید. BookE و برخی دستورالعمل های 405.
-464
کد برای PowerPC 464 تولید کنید.
-476
کد برای PowerPC 476 تولید کنید.
-m7400، -m7410، -m7450، -7455
کد برای PowerPC 7400/7410/7450/7455 تولید کنید.
-m750cl
کد برای PowerPC 750CL ایجاد کنید.
-m821، -m850، -860
کد برای PowerPC 821/850/860 تولید کنید.
-mppc64، -620
کد برای PowerPC 620/625/630 تولید کنید.
-me500، -me500x2
کد برای مجموعه هسته موتورولا e500 ایجاد کنید.
-me500mc
کد برای مجتمع هسته Freescale e500mc ایجاد کنید.
-me500mc64
کد برای مجتمع هسته Freescale e500mc64 ایجاد کنید.
-me5500
کد برای مجتمع هسته Freescale e5500 ایجاد کنید.
-me6500
کد برای مجتمع هسته Freescale e6500 ایجاد کنید.
-mspe
کد برای دستورالعمل های Motorola SPE ایجاد کنید.
-متیتان
کد برای مجتمع هسته AppliedMicro Titan ایجاد کنید.
-mppc64bridge
کد برای PowerPC 64، از جمله bridge insns تولید کنید.
-mbooke
کد برای BookE 32 بیتی تولید کنید.
-ma2
کد برای معماری A2 تولید کنید.
-me300
کد برای خانواده PowerPC e300 تولید کنید.
-مالتیفک
کد برای پردازنده ها با دستورالعمل های AltiVec تولید کنید.
-mvle
کد برای دستورالعمل های Freescale PowerPC VLE ایجاد کنید.
-mvsx
کد برای پردازنده ها با دستورالعمل های Vector-Scalar (VSX) تولید کنید.
-mhtm
کد برای پردازنده ها با دستورالعمل های حافظه تراکنش سخت افزاری تولید کنید.
-power4، -mpwr4
کد برای معماری Power4 تولید کنید.
-power5، -mpwr5، -mpwr5x
کد برای معماری Power5 تولید کنید.
-power6، -mpwr6
کد برای معماری Power6 تولید کنید.
-power7، -mpwr7
کد برای معماری Power7 تولید کنید.
-power8، -mpwr8
کد برای معماری Power8 تولید کنید.
-power9، -mpwr9
کد برای معماری Power9 تولید کنید.
-mcell
-mcell
کد برای معماری موتور پهن باند سلولی ایجاد کنید.
-mcom
دستورالعمل های رایج Power/PowerPC کد تولید کنید.
-زیاد
کد برای هر معماری (PWR/PWRX/PPC) تولید کنید.
-mregnames
اجازه دادن نام های نمادین برای ثبت ها.
-mno-regnames
نام های نمادین را برای ثبت نام مجاز نکنید.
-قابل جابجایی
پشتیبانی از گزینه -mrelocatable GCC.
-mrelocatable-lib
پشتیبانی از گزینه -mrelocatable-lib GCC.
-عضو
بیت PPC_EMB را در پرچمهای ELF تنظیم کنید.
-کم، -mlittle-endian، -ل
کد برای یک دستگاه اندیان کوچک تولید کنید.
-بزرگ، -mbig-endian، -بودن
کد برای یک ماشین اندیان بزرگ تولید کنید.
-msolaris
کد برای Solaris ایجاد کنید.
-mno-solaris
برای Solaris کد تولید نکنید.
-nops=تعداد دفعات مشاهده
اگر یک دستورالعمل تراز بیش از تعداد دفعات مشاهده نه، در ابتدا یک شاخه قرار دهید
برای رد شدن از اجرای nops.
برای مستندسازی گزینه های خاص RX به صفحات اطلاعات مراجعه کنید.
هنگامی که برای خانواده پردازنده های s390 پیکربندی شده است، گزینه های زیر در دسترس هستند.
-31
-64
اندازه کلمه را انتخاب کنید، یا 31/32 بیت یا 64 بیت.
-مسا
-مزارچ
حالت معماری را انتخاب کنید، یا Enterprise System Architecture (esa) یا
z/حالت معماری (zarch).
-مارس=پردازنده
مشخص کنید که کدام نوع پردازنده s390 مورد نظر است، g6, g6, z900, z990, z9-109, z9-ec,
z10, z196, zEC12، یا z13.
-mregnames
-mno-regnames
نامهای نمادین برای ثبتها مجاز یا غیرمجاز است.
-mwarn-areg-zero
هر زمان که عملوند یک ثبات پایه یا شاخص اما مشخص شده باشد هشدار دهید
صفر ارزیابی می کند.
هنگامی که برای پردازنده TMS320C6000 پیکربندی شده است، گزینه های زیر در دسترس هستند.
-مارس=قوس
(فقط) دستورالعمل های معماری را فعال کنید قوس. به طور پیش فرض، تمام دستورالعمل ها هستند
مجاز
مقادیر زیر از قوس پذیرفته می شوند: "c62x"، "c64x"، "c64x+"، "c67x"، "c67x+"،
"c674x".
-mdsbt
-mno-dsbt
La -mdsbt گزینه باعث می شود اسمبلر ویژگی "Tag_ABI_DSBT" را با a تولید کند
مقدار 1، نشان می دهد که کد از آدرس دهی DSBT استفاده می کند. در -mno-dsbt گزینه،
بهطور پیشفرض، باعث میشود که تگ مقدار 0 داشته باشد، که نشان میدهد کد ندارد
از آدرس دهی DSBT استفاده کنید در صورت وجود اشیاء از انواع مختلف، پیوند دهنده یک هشدار منتشر می کند
(DSBT و غیر DSBT) با هم مرتبط هستند.
-mpid=نه
-mpid=نزدیک
-mpid=دور
La -mpid= گزینه باعث می شود اسمبلر ویژگی "Tag_ABI_PID" را با a تولید کند
مقدار نشان دهنده شکل آدرس دهی داده مورد استفاده توسط کد است. -mpid=نه، پیشفرض،
آدرس دهی داده وابسته به موقعیت را نشان می دهد، -mpid=نزدیک موقعیت را نشان می دهد -
آدرس دهی مستقل با دسترسی های GOT با استفاده از آدرس دهی DP نزدیک، و -mpid=دور
آدرس دهی مستقل از موقعیت را با دسترسی های GOT با استفاده از آدرس دهی DP دور نشان می دهد.
اگر اشیایی با تنظیمات مختلف این گزینه ساخته شده باشند، پیوند دهنده یک هشدار منتشر می کند
با هم مرتبط هستند.
-مپیک
-mno-pic
La -مپیک گزینه باعث می شود اسمبلر ویژگی "Tag_ABI_PIC" را با a تولید کند
مقدار 1، نشان می دهد که کد از آدرس دهی کد مستقل از موقعیت استفاده می کند.
گزینه "-mno-pic"، به طور پیش فرض، باعث می شود که برچسب مقدار 0 داشته باشد، که نشان می دهد
آدرس دهی کد وابسته به موقعیت در صورت وجود اشیاء، پیوند دهنده یک هشدار منتشر می کند
انواع مختلف (وابسته به موقعیت و مستقل از موقعیت) با هم مرتبط هستند.
-mbig-endian
-mlittle-endian
کد برای endianness مشخص شده ایجاد کنید. پیش فرض کمی endian است.
هنگامی که برای یک پردازنده TILE-Gx پیکربندی شده است، گزینه های زیر در دسترس هستند.
-32 | -64
اندازه کلمه را انتخاب کنید، 32 بیت یا 64 بیت.
-EB | -The
endianness را انتخاب کنید، یا big-endian (-EB) یا small-endian (-EL).
گزینه زیر زمانی در دسترس است که برای یک پردازنده Visium پیکربندی شده است.
-mtune=قوس
این گزینه معماری هدف را مشخص می کند. اگر تلاشی برای مونتاژ یک
دستوری که روی معماری هدف اجرا نشود، اسمبلر صادر خواهد کرد
یک پیام خطا
نامهای زیر شناخته میشوند: "mcm24" "mcm" "gr5" "gr6"
هنگامی که برای پردازنده Xtensa پیکربندی شده است، گزینه های زیر در دسترس هستند.
---بخش متن-الفظی | --بدون متن-بخش-literals
درمان استخرهای تحت اللفظی را کنترل کنید. پیش فرض است --بدون متن-بخش-literals,
که literals را در بخش های جداگانه در فایل خروجی قرار می دهد. این اجازه می دهد تا
استخر تحت اللفظی برای قرار دادن در RAM/ROM داده. با ---بخش متن-الفظیاز
حروف تحت الفظی در بخش متن قرار می گیرند تا آنها را به همان اندازه نزدیک نگه دارند
به مراجع آنها امکان پذیر است. این ممکن است برای فایلهای مونتاژ بزرگ، جایی که
در غیر این صورت حروف تحت اللفظی خارج از محدوده دستورالعمل های "L32R" در متن خواهند بود
بخش. Literal ها به دنبال دستورالعمل های ".literal_position" یا گروه بندی می شوند
دستورالعمل های قبلی "ENTRY". این گزینهها فقط بر لفظهای ارجاعشده از طریق PC تأثیر میگذارند.
دستورالعمل های نسبی "L32R"؛ دستورات برای حالت مطلق "L32R" هستند
جداگانه رسیدگی می شود.
-- استخرهای خودکار | --بدون آبگیرهای خودکار
درمان استخرهای تحت اللفظی را کنترل کنید. پیش فرض است --بدون آبگیرهای خودکار، که در
عدم وجود ---بخش متن-الفظی حروف الفبا را در بخش های جداگانه قرار می دهد
فایل خروجی. این اجازه می دهد تا استخر تحت اللفظی در یک RAM/ROM داده قرار گیرد. با
-- استخرهای خودکار، حروف تحت اللفظی به منظور حفظ در قسمت متن قرار می گیرند
آنها را تا حد امکان به مراجع خود نزدیک کنید، دستورالعمل های صریح ".literal_position".
مورد نیاز نیستند. این ممکن است برای توابع بسیار بزرگ، که مجرد هستند، ضروری باشد
استخر واقعی در ابتدای عملکرد ممکن است توسط "L32R" قابل دسترسی نباشد
دستورالعمل در پایان این گزینهها فقط بر مواردی که از طریق PC ارجاع داده میشوند تأثیر میگذارند.
دستورالعمل های نسبی "L32R"؛ دستورات برای حالت مطلق "L32R" هستند
جداگانه رسیدگی می شود. هنگام استفاده همراه با ---بخش متن-الفظی, -- استخرهای خودکار
اولویت دارد.
--مطلق لفظی | --بدون-مطلق-اللفظی
به اسمبلر نشان دهید که آیا دستورالعمل های "L32R" از مطلق یا PC نسبی استفاده می کنند
خطاب به. اگر پردازنده شامل گزینه آدرس دهی مطلق باشد، پیش فرض است
برای استفاده از جابجایی های مطلق "L32R". در غیر این صورت، فقط "L32R" مربوط به رایانه شخصی
می توان از جابجایی ها استفاده کرد.
---هدف-تراز کردن | --بدون هدف-تراز کردن
تراز خودکار را فعال یا غیرفعال کنید تا جریمه های شعبه با مقداری هزینه کاهش یابد
اندازه کد این بهینه سازی به صورت پیش فرض فعال است. توجه داشته باشید که اسمبلر این کار را خواهد کرد
همیشه دستورالعمل هایی مانند "LOOP" را که دارای الزامات تراز ثابت هستند، تراز کنید.
-- تماس های طولانی | -- بدون تماس طولانی
تغییر شکل دستورالعملهای تماس را فعال یا غیرفعال کنید تا امکان تماس بیشتر باشد
محدوده آدرس ها این گزینه باید زمانی استفاده شود که اهداف تماس به طور بالقوه امکان پذیر باشد
خارج از محدوده ممکن است اندازه و عملکرد کد را کاهش دهد، اما پیوند دهنده می تواند
به طور کلی وقتی یک تماس در محدوده به پایان می رسد، سربار غیر ضروری را بهینه کنید.
پیش فرض این است -- بدون تماس طولانی.
--تبدیل | -- بدون تغییر
همه تبدیلهای اسمبلر دستورالعملهای Xtensa، از جمله هر دو را فعال یا غیرفعال کنید
آرامش و بهینه سازی پیش فرض است --تبدیل; -- بدون تغییر فقط باید
در موارد نادری که دستورالعمل ها باید دقیقاً همانطور که در دستورالعمل مشخص شده باشد استفاده شود
منبع مونتاژ استفاده كردن -- بدون تغییر باعث خارج از محدوده بودن عملوندهای دستورالعمل می شود
خطاها
--تغییر نام-بخش نام قدیمی=نام جدید
تغییر نام دهید نام قدیمی بخش به نام جدید. این گزینه را می توان چندین بار استفاده کرد تا
تغییر نام چندین بخش
-- ترامپولین | -- بدون ترامپولین
تبدیل دستورالعمل های پرش را فعال یا غیرفعال کنید تا امکان پرش در یک بزرگتر وجود داشته باشد
محدوده آدرس ها این گزینه باید زمانی استفاده شود که اهداف پرش به طور بالقوه می توانند باشند
خارج از محدوده در صورت عدم وجود چنین پرش هایی، این گزینه بر اندازه کد یا
کارایی. پیش فرض است -- ترامپولین.
هنگامی که برای پردازنده خانواده Z80 پیکربندی شده است، گزینه های زیر در دسترس هستند.
-z80
برای پردازنده Z80 اسمبل کنید.
-r800
برای پردازنده R800 مونتاژ کنید.
-دستورالعمل های غیرمستند را نادیده بگیرید
-ونود
دستورالعمل های غیر مستند Z80 را که روی R800 نیز بدون اخطار کار می کنند، جمع آوری کنید.
-دستورالعملها را نادیده گرفت
-واناپ
تمام دستورالعملهای غیرمستند Z80 را بدون اخطار جمعآوری کنید.
هشدار-غیر مستند-دستورالعمل
-وود
برای دستورالعملهای غیرمستند Z80 که روی R800 نیز کار میکنند، هشداری صادر کنید.
-warn-unportable-instructions
-ووپ
برای دستورالعملهای غیرمستند Z80 که روی R800 کار نمیکنند، هشداری صادر کنید.
-دستورالعمل های ممنوع-غیر مستند
-فود
تمام دستورالعمل های غیرمستند را به عنوان خطا در نظر بگیرید.
-دستورالعمل های ممنوع-غیرقابل حمل
-فاپ
دستورالعمل های غیرمستند Z80 که روی R800 کار نمی کنند را به عنوان خطا در نظر بگیرید.
با استفاده از خدمات onworks.net از aarch64-linux-gnu-as به صورت آنلاین استفاده کنید