AS(1) GNU Development Tools AS(1)

as - اسمبلر چندسکویی گنو

as [-a[cdghilns][=file]]
[--alternate]
[--compress-debug-sections] [--nocompress-debug-sections]
[-D]
[--dump-config]
[--debug-prefix-map old=new]
[--defsym sym=val]
[--elf-stt-common=[no|yes]]
[--emulation=name]
[-f]
[-g] [--gstabs] [--gstabs+]
[--gdwarf-<N>] [--gdwarf-sections]
[--gdwarf-cie-version=VERSION]
[--generate-missing-build-notes=[no|yes]]
[--gsframe] [--gsframe=[no|yes]]
[--hash-size=N]
[--help] [--target-help]
[--info] [--no-info]
[-I dir]
[-J]
[-K]
[--keep-locals]
[-L]
[--listing-lhs-width=NUM]
[--listing-lhs-width2=NUM]
[--listing-rhs-width=NUM]
[--listing-cont-lines=NUM]
[--multibyte-handling=[allow|warn|warn-sym-only]]
[--no-pad-sections]
[-o objfile] [-R]
[--scfi=experimental]
[--sectname-subst]
[--size-check=[error|warning]]
[--statistics]
[-v] [--verbose]
[-version] [--version]
[-W] [--no-warn] [--warn] [--fatal-warnings]
[-w] [-x]
[-Z] [@FILE]
[target-options]
[--|files ...].SH "هدف (TARGET)" گزینه‌های هدف AArch64:
[-EB|-EL]
[-mabi=ABI]

گزینه‌های هدف Alpha:
[-mcpu]
[-mdebug | -no-mdebug]
[-replace | -noreplace]
[-relax] [-g] [-Gsize]
[-F] [-32addr]

گزینه‌های هدف ARC:
[-mcpu=cpu]
[-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS]
[-mcode-density]
[-mrelax]
[-EB|-EL]

گزینه‌های هدف ARM:
[-mcpu=processor[+extension...]]
[-march=architecture[+extension...]]
[-mfpu=floating-point-format]
[-mfloat-abi=abi]
[-meabi=ver]
[-mthumb]
[-EB|-EL]
[-mapcs-32|-mapcs-26|-mapcs-float|
-mapcs-reentrant]
[-mthumb-interwork] [-k]

گزینه‌های هدف Blackfin:
[-mcpu=processor[-sirevision]]
[-mfdpic]
[-mno-fdpic]
[-mnopic]

گزینه‌های هدف BPF:
[-EL] [-EB]

گزینه‌های هدف CRIS:
[--underscore | --no-underscore]
[--pic] [-N]
[--emulation=criself | --emulation=crisaout]
[--march=v0_v10 | --march=v10 | --march=v32 | --march=common_v10_v32]

گزینه‌های هدف C-SKY:
[-march=arch] [-mcpu=cpu]
[-EL] [-mlittle-endian] [-EB] [-mbig-endian]
[-fpic] [-pic]
[-mljump] [-mno-ljump]
[-force2bsr] [-mforce2bsr] [-no-force2bsr] [-mno-force2bsr]
[-jsri2bsr] [-mjsri2bsr] [-no-jsri2bsr ] [-mno-jsri2bsr]
[-mnolrw ] [-mno-lrw]
[-melrw] [-mno-elrw]
[-mlaf ] [-mliterals-after-func]
[-mno-laf] [-mno-literals-after-func]
[-mlabr] [-mliterals-after-br]
[-mno-labr] [-mnoliterals-after-br]
[-mistack] [-mno-istack]
[-mhard-float] [-mmp] [-mcp] [-mcache]
[-msecurity] [-mtrust]
[-mdsp] [-medsp] [-mvdsp]

گزینه‌های هدف D10V:
[-O]

گزینه‌های هدف D30V:
[-O|-n|-N]

گزینه‌های هدف EPIPHANY:
[-mepiphany|-mepiphany16]

گزینه‌های هدف H8/300:
[-h-tick-hex]

گزینه‌های هدف i386:
[--32|--x32|--64] [-n]
[-march=CPU[+EXTENSION...]] [-mtune=CPU]

گزینه‌های هدف IA-64:
[-mconstant-gp|-mauto-pic]
[-milp32|-milp64|-mlp64|-mp64]
[-mle|mbe]
[-mtune=itanium1|-mtune=itanium2]
[-munwind-check=warning|-munwind-check=error]
[-mhint.b=ok|-mhint.b=warning|-mhint.b=error]
[-x|-xexplicit] [-xauto] [-xdebug]

گزینه‌های هدف IP2K:
[-mip2022|-mip2022ext]

گزینه‌های هدف M32C:
[-m32c|-m16c] [-relax] [-h-tick-hex]

گزینه‌های هدف M32R:
[--m32rx|--[no-]warn-explicit-parallel-conflicts|
--W[n]p]

گزینه‌های هدف M680X0:
[-l] [-m68000|-m68010|-m68020|...]

گزینه‌های هدف M68HC11:
[-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg]
[-mshort|-mlong]
[-mshort-double|-mlong-double]
[--force-long-branches] [--short-branches]
[--strict-direct-mode] [--print-insn-syntax]
[--print-opcodes] [--generate-example]

گزینه‌های هدف MCORE:
[-jsri2bsr] [-sifilter] [-relax]
[-mcpu=[210|340]]

گزینه‌های هدف Meta:
[-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu] گزینه‌های هدف MICROBLAZE:
[-mlittle-endian] [-mbig-endian]

گزینه‌های هدف MIPS:
[-nocpp] [-EL] [-EB] [-O[optimization level]]
[-g[debug level]] [-G num] [-KPIC] [-call_shared]
[-non_shared] [-xgot [-mvxworks-pic]
[-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
[-mfp64] [-mgp64] [-mfpxx]
[-modd-spreg] [-mno-odd-spreg]
[-march=CPU] [-mtune=CPU] [-mips1] [-mips2]
[-mips3] [-mips4] [-mips5] [-mips32] [-mips32r2]
[-mips32r3] [-mips32r5] [-mips32r6] [-mips64] [-mips64r2]
[-mips64r3] [-mips64r5] [-mips64r6]
[-construct-floats] [-no-construct-floats]
[-mignore-branch-isa] [-mno-ignore-branch-isa]
[-mnan=encoding]
[-trap] [-no-break] [-break] [-no-trap]
[-mips16] [-no-mips16]
[-mmips16e2] [-mno-mips16e2]
[-mmicromips] [-mno-micromips]
[-msmartmips] [-mno-smartmips]
[-mips3d] [-no-mips3d]
[-mdmx] [-no-mdmx]
[-mdsp] [-mno-dsp]
[-mdspr2] [-mno-dspr2]
[-mdspr3] [-mno-dspr3]
[-mmsa] [-mno-msa]
[-mxpa] [-mno-xpa]
[-mmt] [-mno-mt]
[-mmcu] [-mno-mcu]
[-mcrc] [-mno-crc]
[-mginv] [-mno-ginv]
[-mloongson-mmi] [-mno-loongson-mmi]
[-mloongson-cam] [-mno-loongson-cam]
[-mloongson-ext] [-mno-loongson-ext]
[-mloongson-ext2] [-mno-loongson-ext2]
[-minsn32] [-mno-insn32]
[-mfix7000] [-mno-fix7000]
[-mfix-rm7000] [-mno-fix-rm7000]
[-mfix-vr4120] [-mno-fix-vr4120]
[-mfix-vr4130] [-mno-fix-vr4130]
[-mfix-r5900] [-mno-fix-r5900]
[-mdebug] [-no-mdebug]
[-mpdr] [-mno-pdr]

گزینه‌های هدف MMIX:
[--fixed-special-register-names] [--globalize-symbols]
[--gnu-syntax] [--relax] [--no-predefined-symbols]
[--no-expand] [--no-merge-gregs] [-x]
[--linker-allocated-gregs]

گزینه‌های هدف NDS32:
[-EL] [-EB] [-O] [-Os] [-mcpu=cpu]
[-misa=isa] [-mabi=abi] [-mall-ext]
[-m[no-]16-bit] [-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] [-mreduced-regs]
[-mfull-regs] [-m[no-]dx-regs] [-mpic] [-mno-relax]
[-mb2bb]

گزینه‌های هدف PDP11:
[-mpic|-mno-pic] [-mall] [-mno-extensions]
[-mextension|-mno-extension]
[-mcpu] [-mmachine].PP گزینه‌های مقصد picoJava:
[-mb|-me]

گزینه‌های مقصد PowerPC:
[-a32|-a64]
[-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|-m403|-m405|
-m440|-m464|-m476|-m7400|-m7410|-m7450|-m7455|-m750cl|-mgekko|
-mbroadway|-mppc64|-m620|-me500|-e500x2|-me500mc|-me500mc64|-me5500|
-me6500|-mppc64bridge|-mbooke|-mpower4|-mpwr4|-mpower5|-mpwr5|-mpwr5x|
-mpower6|-mpwr6|-mpower7|-mpwr7|-mpower8|-mpwr8|-mpower9|-mpwr9-ma2|
-mcell|-mspe|-mspe2|-mtitan|-me300|-mcom]
[-many] [-maltivec|-mvsx|-mhtm|-mvle]
[-mregnames|-mno-regnames]
[-mrelocatable|-mrelocatable-lib|-K PIC] [-memb]
[-mlittle|-mlittle-endian|-le|-mbig|-mbig-endian|-be]
[-msolaris|-mno-solaris]
[-nops=count]

گزینه‌های مقصد PRU:
[-link-relax]
[-mnolink-relax]
[-mno-warn-regname-label]

گزینه‌های مقصد RISC-V:
[-fpic|-fPIC|-fno-pic]
[-march=ISA|Profiles|Profiles_ISA]
[-mabi=ABI]
[-mlittle-endian|-mbig-endian]

گزینه‌های مقصد RL78:
[-mg10]
[-m32bit-doubles|-m64bit-doubles]

گزینه‌های مقصد RX:
[-mlittle-endian|-mbig-endian]
[-m32bit-doubles|-m64bit-doubles]
[-muse-conventional-section-names]
[-msmall-data-limit]
[-mpid]
[-mrelax]
[-mint-register=number]
[-mgcc-abi|-mrx-abi]

گزینه‌های مقصد s390:
[-m31|-m64] [-mesa|-mzarch] [-march=CPU]
[-mregnames|-mno-regnames]
[-mwarn-areg-zero]
[-mwarn-regtype-mismatch=strict
-mwarn-regtype-mismatch=relaxed
-mwarn-regtype-mismatch=no
-mno-warn-regtype-mismatch]

گزینه‌های مقصد SCORE:
[-EB][-EL][-FIXDD][-NWARN]
[-SCORE5][-SCORE5U][-SCORE7][-SCORE3]
[-march=score7][-march=score3]
[-USE_R1][-KPIC][-O0][-G num][-V]

گزینه‌های مقصد SPARC:
[-Av6|-Av7|-Av8|-Aleon|-Asparclet|-Asparclite
-Av8plus|-Av8plusa|-Av8plusb|-Av8plusc|-Av8plusd
-Av8plusv|-Av8plusm|-Av9|-Av9a|-Av9b|-Av9c
-Av9d|-Av9e|-Av9v|-Av9m|-Asparc|-Asparcvis
-Asparcvis2|-Asparcfmaf|-Asparcima|-Asparcvis3
-Asparcvisr|-Asparc5]
[-xarch=v8plus|-xarch=v8plusa]|-xarch=v8plusb|-xarch=v8plusc
-xarch=v8plusd|-xarch=v8plusv|-xarch=v8plusm|-xarch=v9
-xarch=v9a|-xarch=v9b|-xarch=v9c|-xarch=v9d|-xarch=v9e
-xarch=v9v|-xarch=v9m|-xarch=sparc|-xarch=sparcvis
-xarch=sparcvis2|-xarch=sparcfmaf|-xarch=sparcima
-xarch=sparcvis3|-xarch=sparcvisr|-xarch=sparc5
-bump]
[-32|-64]
[--enforce-aligned-data][--dcti-couples-detect]

گزینه‌های مقصد TIC54X:
[-mcpu=54[123589]|-mcpu=54[56]lp] [-mfar-mode|-mf]
[-merrors-to-file <filename>|-me <filename>]

گزینه‌های مقصد TIC6X:
[-march=arch] [-mbig-endian|-mlittle-endian]
[-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far]
[-mpic|-mno-pic]

گزینه‌های مقصد TILE-Gx:
[-m32|-m64][-EB][-EL]

گزینه‌های مقصد Visium:
[-mtune=arch]

گزینه‌های مقصد Xtensa:
[--[no-]text-section-literals] [--[no-]auto-litpools]
[--[no-]absolute-literals]
[--[no-]target-align] [--[no-]longcalls]
[--[no-]transform]
[--rename-section oldname=newname]
[--[no-]trampolines]
[--abi-windowed|--abi-call0]

گزینه‌های مقصد Z80:
[-march=CPU[-EXT][+EXT]]
[-local-prefix=PREFIX]
[-colonless]
[-sdcc]
[-fp-s=FORMAT]
[-fp-d=FORMAT].SH "توضیحات (DESCRIPTION)" برنامهٔ GNU as در واقع خانواده‌ای از اسمبلرها است. اگر از اسمبلر گنو روی یک معماری استفاده می‌کنید (یا قبلاً استفاده کرده‌اید)، باید هنگام کار با آن در معماری دیگر با محیطی نسبتاً مشابه روبه‌رو شوید. هر نسخه با سایر نسخه‌ها اشتراکات فراوانی دارد، از جمله قالب‌های فایل شیء، اکثر دستورالعمل‌های اسمبلر (که اغلب pseudo-ops نامیده می‌شوند) و نحو اسمبلر.

هدف اصلی as اسمبل کردن خروجی کامپایلر سی گنو "gcc" جهت استفاده توسط پیونددهندهٔ "ld" است. با این حال، ما تلاش کرده‌ایم تا as هر آنچه را که دیگر اسمبلرها برای همان ماشین اسمبل می‌کنند، به‌درستی اسمبل کند. هرگونه استثنا به‌طور صریح مستند شده است. این بدان معنا نیست که as همیشه از همان نحوِ اسمبلر دیگری برای همان معماری استفاده می‌کند؛ برای نمونه، ما از چندین نسخهٔ ناسازگار از نحو زبان اسمبلی 680x0 مطلع هستیم.

هر بار که as را اجرا می‌کنید، دقیقاً یک برنامهٔ مبدأ را اسمبل می‌کند. برنامهٔ مبدأ از یک یا چند فایل تشکیل شده است. (ورودی استاندارد نیز یک فایل است.)

شما به as یک خط فرمان می‌دهید که شامل صفر یا چند نام فایل ورودی است. فایل‌های ورودی (از نام فایل سمت چپ به راست) خوانده می‌شوند. هر آرگومان خط فرمان (در هر موقعیتی) که معنای خاصی نداشته باشد، به عنوان نام فایل ورودی در نظر گرفته می‌شود.

اگر نام هیچ فایلی را به as ندهید، تلاش می‌کند یک فایل ورودی را از ورودی استاندارد as، که معمولاً پایانهٔ شماست، بخواند. ممکن است مجبور شوید ctl-D را وارد کنید تا به as اعلام نمایید برنامهٔ دیگری برای اسمبل کردن وجود ندارد.

اگر نیاز دارید صراحتاً فایل ورودی استاندارد را در خط فرمان خود نام ببرید، از -- استفاده کنید.

اگر مبدأ خالی باشد، as یک فایل شیء کوچک و خالی تولید می‌کند.

ممکن است as پیام‌های هشدار و خطا را در فایل خطای استاندارد (معمولاً پایانهٔ شما) بنویسد. زمانی که یک کامپایلر as را به‌طور خودکار اجرا می‌کند، این اتفاق نباید رخ دهد. هشدارها فرضیاتی را گزارش می‌دهند که برای ادامه دادن اسمبلِ یک برنامهٔ دارای ایراد اتخاذ شده‌اند؛ خطاها مشکلی جدی را گزارش می‌دهند که فرایند اسمبل را متوقف می‌سازد.

اگر as را از طریق کامپایلر سی گنو فراخوانی می‌کنید، می‌توانید از گزینهٔ -Wa برای ارسال آرگومان‌ها به اسمبلر استفاده کنید. آرگومان‌های اسمبلر باید با کاما از یکدیگر (و از -Wa) جدا شوند. برای مثال:

gcc -c -g -O -Wa,-alh,-L file.c

این دستور دو گزینه را به اسمبلر منتقل می‌کند: -alh (ارسال یک فهرست به خروجی استاندارد به همراه کد منبع سطح‌بالا و اسمبلی) و -L (نگه‌داشتن نمادهای محلی در جدول نمادها).

معمولاً نیازی به استفاده از این سازوکار -Wa ندارید، زیرا بسیاری از گزینه‌های خط فرمان کامپایلر به‌طور خودکار توسط کامپایلر به اسمبلر منتقل می‌شوند. (می‌توانید گردانندهٔ کامپایلر گنو را با گزینهٔ -v فراخوانی کنید تا دقیقاً ببینید چه گزینه‌هایی را به هر مرحله از کامپایل، از جمله اسمبلر، منتقل می‌کند.)

@file
گزینه‌های خط فرمان را از file می‌خواند. گزینه‌های خوانده‌شده در جایگاه گزینهٔ اصلی @file درج می‌شوند. اگر file وجود نداشته باشد یا قابل خواندن نباشد، با گزینه به‌صورت لفظی برخورد شده و حذف نخواهد شد.

گزینه‌ها در file با نویسهٔ فاصلهٔ خالی از یکدیگر جدا می‌شوند. یک نویسهٔ فاصلهٔ خالی می‌تواند با محصور کردن کل گزینه در علامت‌های نقل‌قول تکی یا دوتایی، درون یک گزینه گنجانده شود. هر نویسه‌ای (از جمله بک‌اسلش) را می‌توان با قرار دادن یک بک‌اسلش پیش از آن وارد کرد. خود file می‌تواند شامل گزینه‌های @file بیشتری باشد؛ هر یک از این گزینه‌ها به‌صورت بازگشتی پردازش خواهند شد.

فهرست‌بندی‌ها را به روش‌های گوناگونی فعال می‌کند:
صرف‌نظر کردن از گزاره‌های شرطی نادرست
صرف‌نظر کردن از دستورالعمل‌های اشکال‌زدایی
گنجاندن اطلاعات عمومی، مانند نسخهٔ as و گزینه‌های ارسال‌شده
گنجاندن کد منبع سطح‌بالا
گنجاندن اسمبلی
گنجاندن اسمبلی به همراه ginsn
گنجاندن بسط‌های ماکرو
صرف‌نظر کردن از پردازش فرم‌ها
گنجاندن نمادها
=file
تنظیم نام فایل فهرست‌بندی

می‌توانید این گزینه‌ها را با هم ترکیب کنید؛ برای نمونه، از -aln برای فهرست‌بندی اسمبلی بدون پردازش فرم‌ها استفاده نمایید. گزینهٔ =file در صورت استفاده، باید آخرین گزینه باشد. به تنهایی، گزینهٔ -a به‌طور پیش‌فرض معادل -ahls است.

شروع در حالت ماکروی جایگزین.
فشرده‌سازی بخش‌های اشکال‌زدایی DWARF با استفاده از zlib همراه با SHF_COMPRESSED از ELF ABI. ممکن است فایل شیء حاصل با پیونددهنده‌ها و ابزارهای فایل شیء قدیمی‌تر سازگار نباشد. توجه داشته باشید اگر فشرده‌سازی باعث بزرگ‌تر شدن یک بخش شود، آن بخش فشرده نخواهد شد.
این گزینه‌ها نحوهٔ فشرده‌سازی بخش‌های اشکال‌زدایی DWARF را کنترل می‌کنند. گزینهٔ --compress-debug-sections=none معادل --nocompress-debug-sections است. گزینه‌های --compress-debug-sections=zlib و --compress-debug-sections=zlib-gabi معادل --compress-debug-sections هستند. گزینهٔ --compress-debug-sections=zlib-gnu بخش‌های اشکال‌زدایی DWARF را با استفاده از قالب منسوخ‌شدهٔ zlib-gnu فشرده می‌کند. نام بخش‌های اشکال‌زدایی تغییر می‌کند تا با .zdebug آغاز شوند. گزینهٔ --compress-debug-sections=zstd بخش‌های اشکال‌زدایی DWARF را با استفاده از zstd فشرده می‌کند. توجه داشته باشید - اگر فشرده‌سازی در عمل باعث بزرگ‌تر شدن یک بخش شود، فشرده نشده و تغییر نام نیز نخواهد یافت.
بخش‌های اشکال‌زدایی DWARF را فشرده نمی‌کند. این معمولاً رفتار پیش‌فرض برای تمام اهداف به‌جز x86/x86_64 است، اما می‌توان از یک گزینه در زمان پیکربندی برای نادیده گرفتن این مورد استفاده کرد.
در صورت پشتیبانی، اشکال‌زدایی را در بک‌اندهای مختص هدف فعال می‌کند. در غیر این صورت نادیده گرفته می‌شود. حتی در صورت نادیده گرفته شدن، این گزینه برای سازگاری اسکریپت‌ها با فراخوانی‌های دیگر اسمبلرها پذیرفته می‌شود.
هنگام اسمبل کردن فایل‌ها در دایرکتوری old، اطلاعات اشکال‌زدایی را به گونه‌ای ثبت می‌کند که به‌جای آن در new توصیف شوند.
نماد sym را پیش از اسمبل کردن فایل ورودی با مقدار value تعریف می‌کند. value باید یک مقدار ثابت عدد صحیح باشد. همانند زبان C، یک پیشوند 0x نشان‌دهندهٔ یک مقدار هگزادسیمال، و یک پیشوند 0 نشان‌دهندهٔ یک مقدار اکتال است. مقدار این نماد را می‌توان درون یک فایل مبدأ با استفاده از شبه‌دستور ".set" بازنویسی کرد.
نحوهٔ پیکربندی اسمبلر را نمایش می‌دهد و سپس خارج می‌شود.
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر ELF نمادهای مشترک را با نوع "STT_COMMON" تولید کند یا خیر. مقدار پیش‌فرض را می‌توان با گزینه پیکربندی --enable-elf-stt-common کنترل کرد.
حتی نمادهای مطلق از پیش تعریف‌شده (محلی) را نیز در جدول نماد خروجی درج می‌کند. توجه داشته باشید که این گزینه دقیقاً نقطه مقابل --strip-local-absolute نیست.
اگر اسمبلر برای پشتیبانی از چندین پیکربندی مختلف هدف پیکربندی شده باشد، می‌توان از این گزینه برای انتخاب حالت مورد نظر استفاده کرد.
«سریع»---نادیده گرفتن پیش‌پردازش فاصله‌های خالی و توضیحات (با این فرض که کد مبدأ خروجی کامپایلر است).
تولید اطلاعات اشکال‌زدایی برای هر خط از مبدأ اسمبلر با استفاده از قالبی که توسط هدف ترجیح داده می‌شود. این قالب در حال حاضر STABS، ECOFF یا DWARF2 است. هنگامی که قالب اشکال‌زدایی DWARF باشد، بخش‌های ".debug_info" و ".debug_line" تنها زمانی درج می‌شوند که فایل اسمبلی خود آن‌ها را تولید نکرده باشد.
تولید اطلاعات اشکال‌زدایی stabs برای هر خط اسمبلر. در صورتی که اشکال‌زدا بتواند آن را پردازش کند، ممکن است به اشکال‌زدایی کد اسمبلر کمک کند.
تولید اطلاعات اشکال‌زدایی stabs برای هر خط اسمبلر، همراه با توسعه‌های GNU که احتمالاً تنها gdb می‌تواند آن‌ها را پردازش کند، و ممکن است باعث از کار افتادن سایر اشکال‌زداها یا امتناع آن‌ها از خواندن برنامه شما شود. این کار ممکن است به اشکال‌زدایی کد اسمبلر کمک کند. در حال حاضر تنها توسعه GNU، مکان دایرکتوری کاری جاری در زمان اسمبل است.
تولید اطلاعات اشکال‌زدایی DWARF2 برای هر خط اسمبلر. در صورتی که اشکال‌زدا بتواند آن را پردازش کند، ممکن است به اشکال‌زدایی کد اسمبلر کمک کند. توجه کنید---این گزینه تنها توسط برخی از هدف‌ها پشتیبانی می‌شود، نه همه آن‌ها.
این گزینه همانند گزینه --gdwarf-2 است، با این تفاوت که امکان تولید اطلاعات اشکال‌زدایی اضافی بر اساس نسخه ۳ مشخصات DWARF را فراهم می‌کند. توجه - فعال کردن این گزینه تولید اطلاعات اضافی را تضمین نمی‌کند؛ تصمیم‌گیری برای انجام این کار بر اساس هر هدف صورت می‌گیرد.
این گزینه همانند گزینه --gdwarf-2 است، با این تفاوت که امکان تولید اطلاعات اشکال‌زدایی اضافی بر اساس نسخه ۴ مشخصات DWARF را فراهم می‌کند. توجه - فعال کردن این گزینه تولید اطلاعات اضافی را تضمین نمی‌کند؛ تصمیم‌گیری برای انجام این کار بر اساس هر هدف صورت می‌گیرد.
این گزینه همانند گزینه --gdwarf-2 است، با این تفاوت که امکان تولید اطلاعات اشکال‌زدایی اضافی بر اساس نسخه ۵ مشخصات DWARF را فراهم می‌کند. توجه - فعال کردن این گزینه تولید اطلاعات اضافی را تضمین نمی‌کند؛ تصمیم‌گیری برای انجام این کار بر اساس هر هدف صورت می‌گیرد.
به جای ایجاد یک بخش .debug_line، مجموعه‌ای از بخش‌های .debug_line.foo ایجاد می‌کند که در آن foo نام بخش کد مربوطه است. برای مثال، یک بخش کد به نام .text.func اطلاعات شماره خط dwarf خود را درون بخشی به نام .debug_line.text.func قرار می‌دهد. اگر بخش کد صرفاً .text نامیده شود، بخش خط اشکال‌زدایی همچنان بدون هیچ پسوندی فقط .debug_line نامیده خواهد شد.
کنترل می‌کند که کدام نسخه از مدخل‌های اطلاعات مشترک DWARF (CIEها) تولید شوند. اگر این پرچم مشخص نشود، پیش‌فرض نسخه ۱ است، هرچند برخی هدف‌ها می‌توانند این پیش‌فرض را تغییر دهند. سایر مقادیر مجاز برای version شامل ۳ یا ۴ هستند.
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر ELF در صورت عدم وجود یادداشت‌های ویژگی‌های ساخت GNU در مبدأهای ورودی، آن‌ها را تولید کند یا خیر. حالت پیش‌فرض را می‌توان با گزینه پیکربندی --enable-generate-build-notes کنترل کرد.
ایجاد بخش .sframe از دستورالعمل‌های CFI. گزینه صریح --gsframe=yes رفتاری مشابه با --gsframe دارد. تولید آن را می‌توان با --gsframe=no متوقف کرد.
نادیده گرفته می‌شود. جهت سازگاری خط فرمان با سایر اسمبلرها پشتیبانی می‌شود.
چاپ خلاصه‌ای از گزینه‌های خط فرمان و خروج.
چاپ خلاصه‌ای از تمامی گزینه‌های مختص هدف و خروج.
عدم سرکوب پیام‌های اطلاعاتی.
سرکوب پیام‌های اطلاعاتی.
افزودن دایرکتوری dir به فهرست جستجو برای دستورالعمل‌های ".include".
عدم صدور هشدار درباره سرریز علامت‌دار.
صدور هشدار هنگام تغییر جدول‌های تفاضلی برای جابه‌جایی‌های بزرگ.
نگه‌داشتن نمادهای محلی (در جدول نمادها). این نمادها با پیشوندهای برچسب محلی مختص سامانه آغاز می‌شوند، معمولاً .L برای سیستم‌های ELF یا L برای سیستم‌های سنتی a.out.
تنظیم حداکثر عرض ستون داده‌های خروجی در فهرست‌بندی اسمبلر، بر حسب کلمه (word)، به number.
تنظیم حداکثر عرض ستون داده‌های خروجی برای خطوط ادامه‌دار در یک فهرست‌بندی اسمبلر، بر حسب کلمه (word)، به number.
تنظیم حداکثر عرض یک خط مبدأ ورودی، به همان شکلی که در یک فهرست‌بندی نمایش داده می‌شود، به number بایت.
تنظیم حداکثر تعداد خطوط چاپ‌شده در یک فهرست‌بندی برای یک خط ورودی واحد به number + 1.
نحوه مدیریت نویسه‌های چندبایتی در ورودی توسط اسمبلر را کنترل می‌کند. حالت پیش‌فرض (که با استفاده از آرگومان allow قابل بازیابی است) این است که به چنین نویسه‌هایی بدون ایجاد هشدار یا خطا اجازه داده شود. استفاده از آرگومان warn باعث می‌شود اسمبلر در هنگام برخورد با هر نویسه چندبایتی یک پیام هشدار تولید کند. استفاده از آرگومان warn-sym-only تنها زمانی موجب ایجاد هشدار می‌شود که نمادی با نامی شامل نویسه‌های چندبایتی تعریف شده باشد. (ارجاع به نمادهای تعریف‌نشده هشداری تولید نخواهد کرد).
اسمبلر را از فاصله‌گذاری (padding) انتهای بخش‌های خروجی تا هم‌ترازی آن بخش بازمی‌دارد. حالت پیش‌فرض فاصله‌گذاری بخش‌ها است، اما این کار می‌تواند فضایی را هدر دهد که ممکن است در هدف‌هایی با محدودیت شدید حافظه مورد نیاز باشد.
نام‌گذاری فایل شیء خروجی از as به نام objfile.
ادغام بخش داده در بخش متن.
نادیده گرفته می‌شود. جهت سازگاری با ابزارهایی پشتیبانی می‌شود که همین گزینه را هم به اسمبلر و هم به پیونددهنده ارسال می‌کنند..IP --scfi=experimental 4 این گزینه کنترل می‌کند که آیا اسمبلر باید برای ورودیِ دست‌نویس، CFI تولید (سنتز) کند یا خیر. اگر ورودی از قبل شامل برخی از دستورالعمل‌های CFI سنتزپذیر باشد، اسمبلر از آن‌ها چشم‌پوشی کرده و هشداری صادر می‌کند. توجه داشته باشید که "--scfi=experimental" برای کدهای تولیدشده توسط کامپایلر، از جمله اسمبلی درون‌خطی (inline assembly) در نظر گرفته نشده است. این پشتیبانی آزمایشی هنوز در دست توسعه است. تنها System V AMD64 ABI پشتیبانی می‌شود.

هر تابع ورودی در اسمبلی باید با دستورالعمل ".type" آغاز شود و در حالت ایده‌آل باید با دستورالعمل ".size" خاتمه یابد. هنگام استفاده از SCFI، هر دستورالعمل ".type" موجب می‌شود GAS یک FDE (یا همان Function Descriptor Entry) جدید را آغاز کند. این بدان معناست که با هر دستورالعمل ".type"، بلوک دستورالعمل‌های پیشین، در صورت وجود، به عنوان یک FDE مجزا نهایی می‌شود.

توالی‌های جایگزینی (substitution sequences) را در نام بخش‌ها (sections) اعمال می‌کند.
صدور یک خطا یا هشدار برای دستورالعمل نامعتبر .size در ELF.
چاپ حداکثر حافظه مصرفی (به بایت) و کل زمان صرف‌شده (به ثانیه) توسط عملیات اسمبل.
حذف نمادهای مطلق محلی از جدول نمادهای خروجی.
نسخهٔ as را چاپ می‌کند.
نسخهٔ as را چاپ کرده و خارج می‌شود.
نادیده گرفتن و فرونشاندن پیام‌های هشدار.
پیام‌های هشدار را فرو ننشانده و با آن‌ها به عنوان خطا رفتار نمی‌کند.
رفتار با هشدارها به عنوان خطا.
نادیده گرفته می‌شود.
نادیده گرفته می‌شود.
تولید فایل هدف (object file) حتی پس از بروز خطاها.
-- | files ...
ورودی استاندارد، یا فایل‌های منبع جهت اسمبل کردن.

گزینه‌های زیر زمانی در دسترس هستند که as برای حالت ۶۴ بیتی معماری ARM یعنی (AArch64) پیکربندی شده باشد.

این گزینه مشخص می‌کند که خروجی تولیدشده توسط اسمبلر باید به عنوان کدگذاری‌شده برای یک پردازنده با ترتیب بایت بزرگ‌پایان (big-endian) علامت‌گذاری شود.
این گزینه مشخص می‌کند که خروجی تولیدشده توسط اسمبلر باید به عنوان کدگذاری‌شده برای یک پردازنده با ترتیب بایت کوچک‌پایان (little-endian) علامت‌گذاری شود.
مشخص می‌کند که کد منبع از کدام ABI استفاده می‌کند. آرگومان‌های شناخته‌شده عبارت‌اند از: "ilp32" و "lp64"، که قالب فایل هدف تولیدشده را به ترتیب در قالب‌های ELF32 و ELF64 تعیین می‌کنند. مقدار پیش‌فرض "lp64" است.
این گزینه پردازندهٔ هدف را مشخص می‌کند. اسمبلر در صورتی که تلاشی برای اسمبل کردن یک دستورالعمل صورت گیرد که روی پردازندهٔ هدف قابل اجرا نباشد، یک پیام خطا صادر خواهد کرد. نام‌های پردازنده‌های زیر شناخته‌شده هستند: "cortex-a34", "cortex-a35", "cortex-a53", "cortex-a55", "cortex-a57", "cortex-a65", "cortex-a65ae", "cortex-a72", "cortex-a73", "cortex-a75", "cortex-a76", "cortex-a76ae", "cortex-a77", "cortex-a78", "cortex-a78ae", "cortex-a78c", "cortex-a510", "cortex-a520", "cortex-a710", "cortex-a720", "ares", "exynos-m1", "falkor", "neoverse-n1", "neoverse-n2", "neoverse-e1", "neoverse-v1", "qdf24xx", "saphira", "thunderx", "vulcan", "xgene1" "xgene2", "cortex-r82", "cortex-x1", "cortex-x2", "cortex-x3", و "cortex-x4". نام ویژهٔ "all" می‌تواند به کار رود تا به اسمبلر اجازه دهد دستورالعمل‌های معتبر برای هر پردازندهٔ پشتیبانی‌شده، شامل تمام افزونه‌های اختیاری را بپذیرد.

علاوه بر مجموعه دستورالعمل‌های پایه، می‌توان به اسمبلر اعلام کرد که نمادهای یادافزار (mnemonics) افزونه‌های مختلفی را که قابلیت‌های پردازنده را گسترش می‌دهند، پذیرفته یا محدود کند.

اگر برخی از پیاده‌سازی‌های یک پردازندهٔ خاص بتوانند افزونه‌ای داشته باشند، آن‌گاه آن افزونه‌ها به طور خودکار فعال می‌شوند. در نتیجه، معمولاً نیازی به مشخص کردن هیچ افزونهٔ اضافی نخواهید داشت.

این گزینه معماری هدف را تعیین می‌کند. در صورتی که تلاشی برای اسمبل کردن دستورالعملی صورت گیرد که روی معماری هدف قابل اجرا نیست، اسمبلر یک پیام خطا صادر خواهد کرد. نام‌های معماری زیر شناخته‌شده هستند: "armv8-a", "armv8.1-a", "armv8.2-a", "armv8.3-a", "armv8.4-a" "armv8.5-a", "armv8.6-a", "armv8.7-a", "armv8.8-a", "armv8.9-a", "armv8-r", "armv9-a", "armv9.1-a", "armv9.2-a", "armv9.3-a", "armv9.4-a" و "armv9.5-a".

اگر هر دو گزینهٔ -mcpu و -march مشخص شده باشند، اسمبلر از تنظیمات -mcpu استفاده خواهد کرد. اگر هیچ‌کدام مشخص نشده باشند، اسمبلر به طور پیش‌فرض -mcpu=all را در نظر می‌گیرد.

گزینهٔ معماری را می‌توان با همان گزینه‌های افزونهٔ مجموعه دستورالعمل در گزینهٔ -mcpu گسترش داد. برخلاف -mcpu، افزونه‌ها همیشه به طور پیش‌فرض فعال نیستند.

این گزینه پیام‌های خطای پرگو (verbose) را برای gas در AArch64 فعال می‌کند. این گزینه به‌طور پیش‌فرض فعال است.
این گزینه پیام‌های خطای پرگو را در gas برای AArch64 غیرفعال می‌کند.
این گزینه پیام‌های خطایی را فعال می‌کند که در صورت تلاش برای اسمبل کردن دسترسی به ثبات سیستمی (system register) که روی معماری هدف اجرا نخواهد شد، صادر می‌شوند.

گزینه‌های زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ Alpha پیکربندی شده باشد.

این گزینه پردازندهٔ هدف را مشخص می‌کند. اگر تلاشی برای اسمبل کردن دستورالعملی انجام شود که روی پردازندهٔ هدف اجرا نمی‌شود، اسمبلر ممکن است آن دستورالعمل را به صورت یک ماکرو بسط دهد یا یک پیام خطا صادر کند. این گزینه معادل دستورالعمل ".arch" است.

نام‌های پردازنده‌های زیر شناخته‌شده هستند: 21064, "21064a", 21066, 21068, 21164, "21164a", "21164pc", 21264, "21264a", "21264b", "ev4", "ev5", "lca45", "ev5", "ev56", "pca56", "ev6", "ev67", "ev68". نام ویژهٔ "all" می‌تواند به کار رود تا به اسمبلر اجازه دهد دستورالعمل‌های معتبر برای هر پردازندهٔ Alpha را بپذیرد.

به منظور پشتیبانی از رویهٔ موجود در OSF/1 در رابطه با ".arch"، و رویهٔ موجود در MILO (بوت‌لودر ARC لینوکس)، نام‌های شماره‌دار پردازنده‌ها (مانند 21064) دستورالعمل‌های PALcode مختص پردازنده را فعال می‌کنند، در حالی که نام‌های «electro-vlasic» (مانند "ev4") این کار را نمی‌کنند..IP -mdebug 4

تولید کپسوله‌سازی ".mdebug" را برای دستورالعمل‌های stabs و توصیف‌کننده‌های رویه فعال یا غیرفعال می‌کند. پیش‌فرض این است که با مشاهده نخستین دستورالعمل stabs، به‌طور خودکار ".mdebug" فعال شود.
این گزینه تحمیل می‌کند که به جای صرفه‌جویی در فضا و حل‌وفصل برخی از بازنشانی‌ها در زمان اسمبلی، تمام بازنشانی‌ها (relocations) درون فایل شیء قرار گیرند. توجه داشته باشید که این گزینه تمام محاسبات نمادها را به فایل شیء منتقل نمی‌کند، زیرا همهٔ محاسبات نمادها قابل بازنمایی نیستند. با این حال، این گزینه همچنان می‌تواند در کاربردهای خاص مفید باشد.
بهینه‌سازی فراخوانی‌های رویه را، هم در زمان اسمبلی و هم در زمان پیوند، فعال یا غیرفعال می‌کند. این گزینه‌ها تنها برای مقصدهای VMS در دسترس هستند و "-replace" حالت پیش‌فرض است. به بخش 1.4.1 از OpenVMS Linker Utility Manual مراجعه کنید.
این گزینه هنگامی استفاده می‌شود که کامپایلر اطلاعات اشکال‌زدایی تولید می‌کند. هنگامی که gcc از mips-tfile برای تولید اطلاعات اشکال‌زدایی برای ECOFF استفاده می‌کند، برچسب‌های محلی باید به فایل شیء فرستاده شوند. در غیر این صورت، این گزینه هیچ اثری ندارد.
یک نماد مشترک محلی بزرگ‌تر از size در ".bss" قرار می‌گیرد، در حالی که نمادهای کوچک‌تر در ".sbss" قرار داده می‌شوند.
-32addr
این گزینه‌ها برای سازگاری با نسخه‌های پیشین نادیده گرفته می‌شوند.

گزینه‌های زیر زمانی در دسترس هستند که as برای یک پردازنده ARC پیکربندی شده باشد.

این گزینه گونهٔ پردازنده اصلی را انتخاب می‌کند.
خروجی را به صورت big-endian (-EB) یا little-endian (-EL) انتخاب می‌کند.
دستورالعمل‌های افزونهٔ Code Density را فعال می‌کند.

گزینه‌های زیر زمانی در دسترس هستند که as برای خانواده پردازنده‌های ARM پیکربندی شده باشد.

مشخص می‌کند کدام گونه از پردازنده‌های ARM هدف است.
مشخص می‌کند کدام گونه از معماری ARM توسط هدف استفاده می‌شود.
مشخص می‌کند کدام معماری ممیز شناور هدف است.
مشخص می‌کند کدام ABI ممیز شناور مورد استفاده است.
رمزگشایی دستورالعمل‌های صرفاً Thumb را فعال می‌کند.
قرارداد فراخوانی رویهٔ مورد استفاده را انتخاب می‌کند.
خروجی را به صورت big-endian (-EB) یا little-endian (-EL) انتخاب می‌کند.
مشخص می‌کند که کد با در نظر داشتن تعامل‌پذیری میان کدهای Thumb و ARM تولید شده است.
حالت سازگاری با نحو اسمبلی CodeComposer Studio را فعال می‌کند.
مشخص می‌کند که کد PIC تولید شده است.

گزینه‌های زیر زمانی در دسترس هستند که as برای خانواده پردازنده‌های Blackfin پیکربندی شده باشد.

این گزینه پردازندهٔ هدف را مشخص می‌کند. مقدار اختیاری 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".
برای ABI مربوط به FDPIC اسمبل می‌کند.
غیرفعال کردن -mfdpic.

گزینه‌های زیر زمانی در دسترس هستند که as برای خانواده پردازنده‌های BPF هسته لینوکس پیکربندی شده باشد.

@chapter قابلیت‌های وابسته به BPF.SS "گزینه‌های BPF (BPF Options)"

این گزینه مشخص می‌کند که اسمبلر باید eBPF بزرگ‌پایان (big-endian) تولید کند.
این گزینه مشخص می‌کند که اسمبلر باید eBPF کوچک‌پایان (little-endian) تولید کند.
این گزینه گویش زبان اسمبلی را برای شناسایی در هنگام اسمبل کردن مشخص می‌کند. اسمبلر از normal و pseudoc پشتیبانی می‌کند.
این گزینه نسخهٔ مجموعه دستورالعمل‌های BPF را برای استفاده هنگام اسمبل کردن مشخص می‌کند. نسخه‌های ISA بی‌پي‌اف پشتیبانی‌شده عبارتند از v1، v2، v3 و v4.

مقدار xbpf می‌تواند برای شناسایی دستورالعمل‌های اضافی که توسط GCC برای مقاصد آزمایشی استفاده می‌شوند، تعیین شود؛ اما توجه داشته باشید که این BPF معتبر نیست.

این گزینه به اسمبلر اعلام می‌کند که دستورالعمل‌ها را تعدیل (relax) نکند.

توجه داشته باشید که اگر هیچ گزینه‌ای برای ترتیب بایت‌ها (endianness) در خط فرمان مشخص نشود، ترتیب بایت‌های میزبان استفاده می‌شود. برای مستندات گزینه‌های مختص CRIS، به صفحات info مراجعه کنید.

گزینه‌های زیر هنگامی در دسترس هستند که as برای خانوادهٔ پردازنده‌های C-SKY پیکربندی شده باشد.

اسمبل کردن برای معماری archname. گزینهٔ --help مقادیر معتبر برای archname را فهرست می‌کند.
اسمبل کردن برای معماری cpuname. گزینهٔ --help مقادیر معتبر برای cpuname را فهرست می‌کند.
تولید خروجی کوچک‌پایان (little-endian).
تولید خروجی بزرگ‌پایان (big-endian).
تولید کد مستقل از موقعیت (position-independent code).
فعال/غیرفعال کردن تبدیل دستورالعمل‌های انشعاب کوتاه "jbf"، "jbt" و "jbr" به "jmpi". این گزینه فقط برای پردازنده‌های V2 است. در مقصدهای CK801 و CK802 که از دستورالعمل "jmpi" پشتیبانی نمی‌کنند، نادیده گرفته می‌شود و برای سایر پردازنده‌ها به‌طور پیش‌فرض فعال است.
ارسال بازنشانی‌های (relocations) "R_CKCORE_PCREL_IMM26BY2" برای دستورالعمل‌های "bsr" به پیونددهنده.

این گزینه تنها برای مقصدهای ELF بدون سیستم‌عامل (bare-metal) C-SKY V2 موجود است که در آنجا به‌طور پیش‌فرض فعال است. از این گزینه نمی‌توان در کدهایی استفاده کرد که قرار است به‌طور پویا با کتابخانه‌های اشتراکی پیوند داده شوند.

فعال/غیرفعال کردن تبدیل دستورالعمل‌های "jbsr" به "bsr". این گزینه همیشه برای مقصدهای CK801/CK802 فعال است (و -mno-force2bsr نادیده گرفته می‌شود). همچنین زمانی که -mbranch-stub اعمال شده باشد، همواره فعال است.
فعال/غیرفعال کردن تبدیل دستورالعمل‌های "jsri" به "bsr". این گزینه به‌طور پیش‌فرض فعال است.
فعال/غیرفعال کردن تبدیل دستورالعمل‌های "lrw" به یک جفت "movih"/"ori".
فعال/غیرفعال کردن دستورالعمل‌های گسترش‌یافتهٔ "lrw". این گزینه به‌طور پیش‌فرض برای پردازنده‌های سری CK800 فعال است.
فعال/غیرفعال کردن قرارگیری استخرهای مقادیر ثابت (literal pools) پس از هر تابع.
فعال/غیرفعال کردن قرارگیری استخرهای مقادیر ثابت (literal pools) پس از انشعاب‌های غیرشرطی. این گزینه به‌طور پیش‌فرض فعال است.
فعال/غیرفعال کردن دستورالعمل‌های پشتهٔ وقفه. این گزینه به‌طور پیش‌فرض در پردازنده‌های CK801، CK802 و CK802 فعال است.

گزینه‌های زیر صراحتاً برخی دستورالعمل‌های اختیاری را فعال می‌کنند. این قابلیت‌ها همچنین به‌صورت ضمنی با استفاده از "-mcpu=" برای تعیین پردازنده‌ای که از آنها پشتیبانی می‌کند فعال می‌شوند.

فعال‌سازی دستورالعمل‌های ممیز شناور سخت‌افزاری.
فعال‌سازی دستورالعمل‌های چندپردازنده‌ای.
فعال‌سازی دستورالعمل‌های کمک‌پردازنده (coprocessor).
فعال‌سازی دستورالعمل پیش‌واکشی کَش (cache prefetch).
فعال‌سازی دستورالعمل‌های امنیتی C-SKY.
فعال‌سازی دستورالعمل‌های اعتبارسنجی (trust) C-SKY.
فعال‌سازی دستورالعمل‌های DSP..IP -medsp 4 دستورالعمل‌های ارتقایافتهٔ DSP را فعال می‌کند.
دستورالعمل‌های برداری DSP را فعال می‌کند.

گزینه‌های زیر زمانی در دسترس هستند که "as" برای یک پردازندهٔ Epiphany پیکربندی شده باشد.

مشخص می‌کند که هر دو دسته دستورالعمل‌های ۳۲ بیتی و ۱۶ بیتی مجاز هستند. این رفتار پیش‌فرض است.
دستورالعمل‌های مجاز را فقط به مجموعهٔ ۱۶ بیتی محدود می‌کند.

گزینه‌های زیر هنگامی که "as" برای پردازندهٔ H8/300 پیکربندی شده باشد در دسترس هستند. @chapter ویژگی‌های وابسته به H8/300

نسخهٔ Renesas H8/300 از "as" دارای یک گزینهٔ وابسته به ماشین است:

پشتیبانی از ثوابت هگزادسیمال به سبک H'00 علاوه بر سبک 0x00.
گونهٔ ماشین H8300 را تعیین می‌کند. نام‌های ماشین زیر شناخته‌شده هستند: "h8300h"، "h8300hn"، "h8300s"، "h8300sn"، "h8300sx" و "h8300sxn".

گزینه‌های زیر هنگامی که "as" برای یک پردازندهٔ i386 پیکربندی شده باشد در دسترس هستند.

--32 | --x32 | --64
اندازهٔ کلمه (word size) را، یا ۳۲ بیتی یا ۶۴ بیتی، انتخاب می‌کند. --32 بیانگر معماری Intel i386 است، در حالی که --x32 و --64 به ترتیب بیانگر معماری AMD x86-64 با اندازه کلمهٔ ۳۲ بیتی یا ۶۴ بیتی هستند.

این گزینه‌ها فقط با قالب فایل شیء ELF در دسترس هستند، و نیازمند آنند که پشتیبانی BFD لازم گنجانده شده باشد (در یک پلتفرم ۳۲ بیتی باید --enable-64-bit-bfd را به configure بیفزایید تا استفاده از ۶۴ بیتی فعال شده و از x86-64 به عنوان پلتفرم هدف استفاده شود).

به طور پیش‌فرض، x86 GAS چندین دستورالعمل nop را که برای ترازسازی درون بخش‌های کد به کار می‌روند، با دستورالعمل‌های nop چندبایتی نظیر leal 0(%esi,1),%esi جایگزین می‌کند. این سوییچ در صورتی که یک nop تک‌بایتی (0x90) صراحتاً به عنوان بایت پُرکننده برای ترازسازی مشخص شده باشد، این بهینه‌سازی را غیرفعال می‌سازد.
در پلتفرم‌های برگرفته از SVR4، نویسهٔ / به عنوان نویسهٔ توضیح (کامنت) تلقی می‌شود، بدان معنا که نمی‌توان از آن در عبارات استفاده کرد. گزینهٔ --divide نویسهٔ / را به یک نویسهٔ معمولی تبدیل می‌کند. این کار / را در ابتدای خط برای شروع توضیح غیرفعال نمی‌کند، و همچنین تأثیری بر استفاده از # برای شروع توضیح ندارد.
این گزینه پردازندهٔ هدف را مشخص می‌کند. در صورتی که تلاشی برای اسمبل کردن دستورالعملی انجام گیرد که روی پردازندهٔ هدف اجرا نخواهد شد، اسمبلر یک پیام خطا صادر خواهد کرد. نام‌های پردازندهٔ زیر شناخته‌شده هستند: "i8086"، "i186"، "i286"، "i386"، "i486"، "i586"، "i686"، "pentium"، "pentiumpro"، "pentiumii"، "pentiumiii"، "pentium4"، "prescott"، "nocona"، "core"، "core2"، "corei7"، "iamcu"، "k6"، "k6_2"، "athlon"، "opteron"، "k8"، "amdfam10"، "bdver1"، "bdver2"، "bdver3"، "bdver4"، "znver1"، "znver2"، "znver3"، "znver4"، "znver5"، "btver1"، "btver2"، "generic32" و "generic64".

علاوه بر مجموعه دستورالعمل‌های پایه، می‌توان به اسمبلر اعلام کرد که نمادهای یادافزای افزونه‌های گوناگون را بپذیرد. برای نمونه، "-march=i686+sse4+vmx" پردازندهٔ i686 را با sse4 و vmx گسترش می‌دهد. افزونه‌های زیر در حال حاضر پشتیبانی می‌شوند: 8087، 287، 387، 687، "cmov"، "fxsr"، "mmx"، "sse"، "sse2"، "sse3"، "sse4a"، "ssse3"، "sse4.1"، "sse4.2"، "sse4"، "avx"، "avx2"، "lahf_sahf"، "monitor"، "adx"، "rdseed"، "prfchw"، "smap"، "mpx"، "sha"، "rdpid"، "ptwrite"، "cet"، "gfni"، "vaes"، "vpclmulqdq"، "prefetchwt1"، "clflushopt"، "se1"، "clwb"، "movdiri"، "movdir64b"، "enqcmd"، "serialize"، "tsxldtrk"، "kl"، "widekl"، "hreset"، "avx512f"، "avx512cd"، "avx512er"، "avx512pf"، "avx512vl"، "avx512bw"، "avx512dq"، "avx512ifma"، "avx512vbmi"، "avx512_4fmaps"، "avx512_4vnniw"، "avx512_vpopcntdq"، "avx512_vbmi2"، "avx512_vnni"، "avx512_bitalg"، "avx512_vp2intersect"، "tdx"، "avx512_bf16"، "avx_vnni"، "avx512_fp16"، "prefetchi"، "avx_ifma"، "avx_vnni_int8"، "cmpccxadd"، "wrmsrns"، "msrlist"، "avx_ne_convert"، "rao_int"، "fred"، "lkgs"، "avx_vnni_int16"، "sha512"، "sm3"، "sm4"، "pbndkb"، "avx10.1"، "avx10.1/512"، "avx10.1/256"، "avx10.1/128"، "user_msr"، "msr_imm"، "apx_f"، "avx10.2"، "avx10.2/512"، "avx10.2/256"، "avx10.2/128"، "movrs"، "amx_int8"، "amx_bf16"، "amx_fp16"، "amx_complex"، "amx_transpose"، "amx_tf32"، "amx_fp8" "amx_movrs"، "amx_avx512"، "amx_tile"، "vmx"، "vmfunc"، "smx"، "xsave"، "xsaveopt"، "xsavec"، "xsaves"، "aes"، "pclmul"، "fsgsbase"، "rdrnd"، "f16c"، "bmi2"، "fma"، "movbe"، "ept"، "lzcnt"، "popcnt"، "hle"، "rtm"، "tsx"، "invpcid"، "clflush"، "mwaitx"، "clzero"، "wbnoinvd"، "pconfig"، "waitpkg"، "uintr"، "cldemote"، "rdpru"، "mcommit"، "sev_es"، "lwp"، "fma4"، "xop"، "cx16"، "syscall"، "rdtscp"، "3dnow"، "3dnowa"، "sse4a"، "sse5"، "snp"، "invlpgb"، "tlbsync"، "rmpquery"، "rmpread"، "svme"، "gmism2"، "gmiccs"، "padlockrng2"، "padlockphe2"، "padlockxmodx" و "padlock". توجه داشته باشید که این نمادهای یادافزای افزونه‌ها می‌توانند با پیشوند "no" همراه شوند تا قابلیت مربوطه (و هر قابلیت وابسته به آن) را لغو کنند. همچنین توجه داشته باشید که پسوندهای مجاز در "-march=avx10.<N>" یک محدودیت در طول بردار اعمال می‌کنند؛ بدین معنا که علی‌رغم این که این موارد در حالت عادی گزینه‌های «فعال‌کننده» محسوب می‌شوند، استفاده از این پسوندها تمامی دستورالعمل‌هایی را که عملوندهای ثبات ماسک یا بردار عریض‌تری دارند غیرفعال خواهد کرد..Sp هنگامی که دایرکتیو ".arch" همراه با -march استفاده شود، دایرکتیو ".arch" اولویت خواهد داشت.

این گزینه پردازنده‌ای را برای بهینه‌سازی مشخص می‌کند. هنگامی که در کنار گزینهٔ -march استفاده شود، فقط دستورالعمل‌های پردازندهٔ مشخص‌شده توسط گزینهٔ -march تولید خواهند شد.

مقادیر معتبر CPU دقیقاً مشابه فهرست پردازنده‌های -march=CPU است.

این گزینه‌ها کنترل می‌کنند که آیا اسمبلر باید عملوندهای مشخصی از دستورالعمل یا ترکیب‌های عملوند را بررسی کند یا خیر. برای مثال، دستورالعمل‌هایی که در آن‌ها اندازهٔ عملوند از خود عملوندها قابل استنتاج نیست و با پسوند دستورالعمل نیز مشخص نشده است. مقدار -moperand-check=none باعث می‌شود اسمبلر این بررسی‌ها را انجام ندهد. مقدار -moperand-check=warning باعث می‌شود اسمبلر در صورت ناموفق بودن بررسی‌های مربوطه یک هشدار صادر کند، که حالت پیش‌فرض است. مقدار -moperand-check=error باعث می‌شود اسمبلر در صورت ناموفق بودن بررسی‌های مربوطه یک خطا صادر کند.
این گزینه مشخص می‌کند که اسمبلر باید دستورالعمل‌های SSE را با پیشوند VEX کدگذاری کند، که نیازمند در دسترس بودن AVX است. دستورالعمل‌های SSE که از GPRهای گسترش‌یافته استفاده می‌کنند، با پیشوند EVEX کدگذاری خواهند شد که نیازمند در دسترس بودن AVX512 یا AVX10 است.
این گزینه مشخص می‌کند که اسمبلر باید انتقال‌های برداری هم‌تراز را به صورت انتقال‌های برداری ناهم‌تراز کدگذاری کند.
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر باید دستورالعمل‌های SSE را بررسی کند یا خیر. مقدار -msse-check=none باعث می‌شود اسمبلر دستورالعمل‌های SSE را بررسی نکند، که حالت پیش‌فرض است. مقدار -msse-check=warning باعث می‌شود اسمبلر برای هر دستورالعمل SSE یک هشدار صادر کند. مقدار -msse-check=error باعث می‌شود اسمبلر برای هر دستورالعمل SSE یک خطا صادر کند.
این گزینه‌ها نحوهٔ کدگذاری دستورالعمل‌های اسکالر AVX توسط اسمبلر را کنترل می‌کنند. مقدار -mavxscalar=128 دستورالعمل‌های اسکالر AVX را با طول بردار ۱۲۸ بیتی کدگذاری می‌کند، که حالت پیش‌فرض است. مقدار -mavxscalar=256 دستورالعمل‌های اسکالر AVX را با طول بردار ۲۵۶ بیتی کدگذاری می‌کند.

هشدار: از این گزینه برای کدهای محیط عملیاتی استفاده نکنید - به دلیل اشکالات طراحی (errata) پردازنده، ممکن است کد حاصل روی برخی مدل‌ها کار نکند.

این گزینه‌ها نحوهٔ کدگذاری دستورالعمل‌های VEX با VEX.W نادیده‌گرفته‌شده (WIG) توسط اسمبلر را کنترل می‌کنند. مقدار -mvexwig=0 دستورالعمل‌های WIG VEX را با vex.w = 0 کدگذاری می‌کند که حالت پیش‌فرض است. مقدار -mvexwig=1 دستورالعمل‌های WIG EVEX را با vex.w = 1 کدگذاری خواهد کرد.

هشدار: از این گزینه برای کدهای محیط عملیاتی استفاده نکنید - به دلیل اشکالات طراحی (errata) پردازنده، ممکن است کد حاصل روی برخی مدل‌ها کار نکند.

این گزینه‌ها نحوهٔ کدگذاری دستورالعمل‌های EVEX با طول نادیده‌گرفته‌شده (LIG) توسط اسمبلر را کنترل می‌کنند. مقدار -mevexlig=128 دستورالعمل‌های LIG EVEX را با طول بردار ۱۲۸ بیتی کدگذاری می‌کند که حالت پیش‌فرض است. مقادیر -mevexlig=256 و -mevexlig=512 دستورالعمل‌های LIG EVEX را به ترتیب با طول بردار ۲۵۶ بیتی و ۵۱۲ بیتی کدگذاری خواهند کرد.
این گزینه‌ها نحوهٔ کدگذاری دستورالعمل‌های EVEX با w نادیده‌گرفته‌شده (WIG) توسط اسمبلر را کنترل می‌کنند. مقدار -mevexwig=0 دستورالعمل‌های WIG EVEX را با evex.w = 0 کدگذاری می‌کند که حالت پیش‌فرض است. مقدار -mevexwig=1 دستورالعمل‌های WIG EVEX را با evex.w = 1 کدگذاری خواهد کرد.
این گزینه نماد اختصاری دستورالعمل را برای تطبیق دستورالعمل‌ها مشخص می‌کند. دایرکتیوهای ".att_mnemonic" و ".intel_mnemonic" اولویت خواهند داشت.
این گزینه نحو پردازش دستورالعمل‌ها را مشخص می‌کند. دایرکتیوهای ".att_syntax" و ".intel_syntax" اولویت خواهند داشت.
این گزینه مشخص می‌کند که ثبات‌ها نیازی به پیشوند % ندارند. دایرکتیوهای ".att_syntax" و ".intel_syntax" اولویت خواهند داشت.
این گزینه اسمبلر را ملزم می‌کند تا پیشوند BND را به تمامی انشعاب‌ها اضافه کند، حتی اگر چنین پیشوندی صراحتاً در کد منبع مشخص نشده باشد.
در مقصد ELF، اسمبلر معمولاً بازمکانی‌های غیر PLT را در برابر مقصدهای انشعاب سراسری غیرضعیفِ تعریف‌شده با نمایانی پیش‌فرض با بهینه‌سازی حذف می‌کند. گزینهٔ -mshared به اسمبلر می‌گوید کدی تولید کند که ممکن است در یک کتابخانهٔ مشترک قرار گیرد که در آن تمام مقصدهای انشعاب سراسری غیرضعیف با نمایانی پیش‌فرض قابل قبضه شدن (preempt) هستند. کد حاصل کمی بزرگ‌تر خواهد بود. این گزینه فقط بر مدیریت دستورالعمل‌های انشعاب اثر می‌گذارد.
در مقصد PE/COFF این گزینه استفاده از قالب فایل شیء بزرگ (big object) را اجباری می‌کند، که بیش از ۳۲۷۶۸ بخش را مجاز می‌داند.
این گزینه‌ها نحوهٔ کدگذاری پیشوند lock توسط اسمبلر را کنترل می‌کنند. این گزینه به عنوان راهکاری برای پردازنده‌هایی در نظر گرفته شده است که با پیشوند lock دچار خطا می‌شوند. این گزینه فقط در رایانه‌های تک‌هسته‌ای و تک‌رشته‌ای می‌تواند با اطمینان استفاده شود. مقدار -momit-lock-prefix=yes تمامی پیشوندهای lock را حذف خواهد کرد. مقدار -momit-lock-prefix=no پیشوند lock را طبق معمول کدگذاری می‌کند، که حالت پیش‌فرض است.
این گزینه‌ها نحوهٔ کدگذاری lfence، mfence و sfence توسط اسمبلر را کنترل می‌کنند. مقدار -mfence-as-lock-add=yes، دستورهای lfence، mfence و sfence را به صورت lock addl $0x0, (%rsp) در حالت ۶۴ بیتی و lock addl $0x0, (%esp) در حالت ۳۲ بیتی کدگذاری می‌کند. مقدار -mfence-as-lock-add=no، دستورهای lfence، mfence و sfence را مانند معمول کدگذاری خواهد کرد که حالت پیش‌فرض است.
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر باید بازمکانی‌های انعطاف‌پذیر (relax relocations)، یعنی R_386_GOT32X را در حالت ۳۲ بیتی، یا R_X86_64_GOTPCRELX و R_X86_64_REX_GOTPCRELX را در حالت ۶۴ بیتی تولید کند یا خیر. مقدار -mrelax-relocations=yes بازمکانی‌های انعطاف‌پذیر را تولید خواهد کرد. مقدار -mrelax-relocations=no بازمکانی‌های انعطاف‌پذیر را تولید نخواهد کرد. مقدار پیش‌فرض را می‌توان توسط گزینهٔ پیکربندی --enable-x86-relax-relocations کنترل کرد..IP -mtls-check=no 4
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر بازآرایی tls را بررسی کند یا خیر. -mtls-check=yes بازآرایی tls را بررسی خواهد کرد. -mtls-check=no بازآرایی tls را بررسی نخواهد کرد. مقدار پیش‌فرض را می‌توان با گزینه پیکربندی --enable-x86-tls-check کنترل کرد.
این گزینه کنترل می‌کند که اسمبلر چگونه شاخه‌ها را با پیشوندهای سگمنت یا NOP تراز کند. NUM باید توانی از ۲ باشد. این مقدار باید 0 یا دست‌کم ۱۶ باشد. شاخه‌ها در مرز بایت NUM تراز خواهند شد. -malign-branch-boundary=0، که پیش‌فرض است، شاخه‌ها را تراز نمی‌کند.
این گزینه انواع شاخه‌هایی را که باید تراز شوند مشخص می‌کند. TYPE ترکیبی از jcc (که پرش‌های شرطی را تراز می‌کند)، fused (که پرش‌های شرطی ادغام‌شده را تراز می‌کند)، jmp (که پرش‌های بدون شرط را تراز می‌کند)، call (که callها را تراز می‌کند)، ret (که retها را تراز می‌کند)، و indirect (که پرش‌ها و callهای غیرمستقیم را تراز می‌کند) است. مقدار پیش‌فرض -malign-branch=jcc+fused+jmp است.
این گزینه حداکثر تعداد پیشوندها روی یک دستورالعمل را برای تراز کردن شاخه‌ها مشخص می‌کند. NUM باید بین 0 و 5 باشد. مقدار پیش‌فرض NUM برابر 5 است.
این گزینه پرش‌های شرطی، پرش‌های شرطی ادغام‌شده و پرش‌های بدون شرط را با حداکثر 5 پیشوند سگمنت روی یک دستورالعمل در مرز 32 بایتی تراز می‌کند. این گزینه معادل موارد زیر است: -malign-branch-boundary=32 -malign-branch=jcc+fused+jmp -malign-branch-prefix-size=5. حالت پیش‌فرض شاخه‌ها را تراز نمی‌کند.
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر باید پس از دستورالعمل‌های load، دستور lfence تولید کند یا خیر. -mlfence-after-load=yes دستور lfence را تولید خواهد کرد. -mlfence-after-load=no دستور lfence تولید نخواهد کرد، که حالت پیش‌فرض است.
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر باید پیش از دستورالعمل‌های شاخه نزدیک غیرمستقیم، دستور lfence تولید کند یا خیر. -mlfence-before-indirect-branch=all پیش از شاخه نزدیک غیرمستقیم از طریق ثبات دستور lfence تولید کرده و پیش از شاخه نزدیک غیرمستقیم از طریق حافظه یک هشدار صادر می‌کند. همچنین هنگامی که هیچ گزینه صریح -mlfence-before-ret= وجود نداشته باشد، به طور ضمنی -mlfence-before-ret=shl را تنظیم می‌کند. -mlfence-before-indirect-branch=register پیش از شاخه نزدیک غیرمستقیم از طریق ثبات، دستور lfence تولید خواهد کرد. -mlfence-before-indirect-branch=memory پیش از شاخه نزدیک غیرمستقیم از طریق حافظه، یک هشدار صادر خواهد کرد. -mlfence-before-indirect-branch=none نه دستور lfence تولید می‌کند و نه هشداری صادر می‌کند، که حالت پیش‌فرض است. توجه داشته باشید که با -mlfence-after-load=yes دستور lfence پیش از شاخه نزدیک غیرمستقیم از طریق ثبات تولید نخواهد شد، زیرا lfence پس از بارگذاری ثبات مقصد شاخه تولید می‌شود.
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر باید پیش از ret دستور lfence تولید کند یا خیر. -mlfence-before-ret=or دستور or را همراه با lfence تولید خواهد کرد. -mlfence-before-ret=shl/yes دستور shl را همراه با lfence تولید خواهد کرد. -mlfence-before-ret=not دستور not را همراه با lfence تولید خواهد کرد. -mlfence-before-ret=none دستور lfence تولید نخواهد کرد، که حالت پیش‌فرض است.
این گزینه‌ها کنترل می‌کنند که آیا اسمبلر باید یادداشت‌های ویژگی گنو از نوع GNU_PROPERTY_X86_ISA_1_USED و GNU_PROPERTY_X86_FEATURE_2_USED را تولید کند یا خیر. حالت پیش‌فرض را می‌توان با گزینه پیکربندی --enable-x86-used-note کنترل کرد.
این گزینه‌ها چگونگی کدگذاری دستورالعمل‌های SAE-only EVEX توسط اسمبلر را کنترل می‌کنند. -mevexrcig=rne بیت‌های RC دستورالعمل EVEX را با 00 کدگذاری می‌کند، که حالت پیش‌فرض است. -mevexrcig=rd، -mevexrcig=ru و -mevexrcig=rz دستورالعمل‌های SAE-only EVEX را به ترتیب با بیت‌های RC برابر با 01، 10 و 11 کدگذاری می‌کنند.
این گزینه مشخص می‌کند که اسمبلر در حالت ۶۴ بیتی فقط باید ISAهای AMD64 یا Intel64 را بپذیرد. حالت پیش‌فرض، پذیرش ISAهای مشترک، فقط Intel64 و AMD64 است.
کدگذاری دستورالعمل‌ها را با اندازه دستورالعمل کوچک‌تر بهینه‌سازی می‌کند. -O و -O1 دستورالعمل‌های بارگذاری ثبات ۶۴ بیتی با مقدار بی‌واسطه ۶۴ بیتی را به صورت دستورالعمل‌های بارگذاری ثبات ۳۲ بیتی با مقادیر بی‌واسطه ۳۱ بیتی یا ۳۲ بیتی کدگذاری می‌کنند، دستورالعمل‌های پاک‌سازی ثبات ۶۴ بیتی را به صورت دستورالعمل‌های پاک‌سازی ثبات ۳۲ بیتی کدگذاری می‌کنند، دستورالعمل‌های پاک‌سازی ثبات برداری ۲۵۶ بیتی/۵۱۲ بیتی VEX/EVEX را با دستورالعمل‌های پاک‌سازی ثبات برداری ۱۲۸ بیتی VEX کدگذاری می‌کنند، دستورالعمل‌های load/store ثبات برداری ۱۲۸ بیتی/۲۵۶ بیتی EVEX را با دستورالعمل‌های load/store ثبات برداری VEX کدگذاری می‌کنند، و دستورالعمل‌های منطقی اعداد صحیح بسته‌بندی‌شده ۱۲۸ بیتی/۲۵۶ بیتی EVEX را با دستورالعمل‌های منطقی اعداد صحیح بسته‌بندی‌شده ۱۲۸ بیتی/۲۵۶ بیتی VEX کدگذاری می‌کنند.

-O2 شامل بهینه‌سازی‌های -O1 است، به‌علاوه دستورالعمل‌های پاک‌سازی ثبات برداری ۲۵۶ بیتی/۵۱۲ بیتی EVEX را با دستورالعمل‌های پاک‌سازی ثبات برداری ۱۲۸ بیتی EVEX کدگذاری می‌کند. در حالت ۶۴ بیتی، در دستورالعمل‌های کدگذاری‌شده VEX با عملوندهای مبدأ جابه‌جایی‌پذیر نیز در صورتی که امکان استفاده از فرم پیشوند VEX دو بایتی را به جای سه بایتی فراهم کند، عملوندهای مبدأ جابه‌جا خواهند شد. اشکال خاصی از AND و همچنین OR با یک عملوند (ثبات) مشابه که دو بار مشخص شده باشد نیز به TEST تبدیل خواهند شد.

-Os شامل بهینه‌سازی‌های -O2 است، به‌علاوه تست ثبات‌های ۱۶ بیتی، ۳۲ بیتی و ۶۴ بیتی با مقدار بی‌واسطه را به صورت تست ثبات ۸ بیتی با مقدار بی‌واسطه کدگذاری می‌کند. -O0 این بهینه‌سازی را غیرفعال می‌کند.

گزینه‌های زیر هنگامی که as برای سری Ubicom IP2K پیکربندی شده باشد در دسترس هستند.

مشخص می‌کند که دستورالعمل‌های گسترش‌یافته IP2022 مجاز هستند.
رفتار پیش‌فرض را بازیابی می‌کند، که دستورالعمل‌های مجاز را فقط به دستورالعمل‌های پایه IP2022 محدود می‌سازد.

گزینه‌های زیر هنگامی که as برای پردازنده‌های Renesas M32C و M16C پیکربندی شده باشد در دسترس هستند.

اسمبل کردن دستورالعمل‌های M32C.
اسمبل کردن دستورالعمل‌های M16C (پیش‌فرض).
فعال‌سازی پشتیبانی از relaxationها در زمان پیوند (link-time relaxations).
پشتیبانی از ثابت‌های هگزادسیمال به سبک H'00 علاوه بر سبک 0x00.

گزینه‌های زیر هنگامی که as برای سری Renesas M32R (میتسوبیشی M32R سابق) پیکربندی شده باشد در دسترس هستند..IP --m32rx 4 مشخص می‌کند کدام پردازنده از خانوادهٔ M32R هدف است. حالت پیش‌فرض معمولاً M32R است، اما این گزینه آن را به M32RX تغییر می‌دهد.

تولید پیام‌های هشدار هنگام مواجهه با سازه‌های موازی مشکوک.
عدم تولید پیام‌های هشدار هنگام مواجهه با سازه‌های موازی مشکوک.

گزینه‌های زیر هنگامی در دسترس هستند که as برای سری Motorola 68000 پیکربندی شده باشد.

کوتاه کردن ارجاعات به نمادهای تعریف‌نشده به یک کلمه (word) به‌جای دو کلمه.
| -m68040 | -m68060 | -m68302 | -m68331 | -m68332
| -m68333 | -m68340 | -mcpu32 | -m5200
مشخص می‌کند کدام پردازنده از خانوادهٔ 68000 هدف است. پیش‌فرض معمولاً 68020 است، اما این مقدار را می‌توان در زمان پیکربندی تغییر داد.
تعیین می‌کند که ماشین هدف دارای (یا فاقد) کمک‌پردازندهٔ ممیز شناور است. پیش‌فرض بر این است که برای 68020، 68030 و cpu32 یک کمک‌پردازنده وجود دارد. هرچند پردازندهٔ پایهٔ 68000 با 68881 سازگار نیست، اما می‌توان ترکیبی از این دو را مشخص کرد، زیرا شبیه‌سازی دستورالعمل‌های کمک‌پردازنده توسط پردازندهٔ اصلی امکان‌پذیر است.
تعیین می‌کند که ماشین هدف دارای (یا فاقد) کمک‌پردازندهٔ واحد مدیریت حافظه (MMU) است. پیش‌فرض بر این است که برای 68020 و بالاتر MMU وجود دارد.

برای جزئیات دربارهٔ گزینه‌های ویژگی‌های وابسته به ماشین PDP-11، به PDP-11-Options مراجعه کنید.

تولید کد مستقل از موقعیت (یا وابسته به موقعیت). پیش‌فرض -mpic است.
فعال‌سازی همهٔ افزونه‌های مجموعه دستورالعمل. این حالت پیش‌فرض است.
غیرفعال‌سازی همهٔ افزونه‌های مجموعه دستورالعمل.
فعال‌سازی (یا غیرفعال‌سازی) یک افزونهٔ مشخص از مجموعه دستورالعمل.
فعال‌سازی افزونه‌های مجموعه دستورالعمل پشتیبانی‌شده توسط یک CPU خاص، و غیرفعال‌سازی سایر افزونه‌ها.
فعال‌سازی افزونه‌های مجموعه دستورالعمل پشتیبانی‌شده توسط یک مدل ماشین خاص، و غیرفعال‌سازی سایر افزونه‌ها.

گزینه‌های زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ picoJava پیکربندی شده باشد.

تولید خروجی با قالب «بزرگ‌پایان» (big endian).
تولید خروجی با قالب «کوچک‌پایان» (little endian).

گزینه‌های زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ PRU پیکربندی شده باشد.

فرض می‌کند که LD با بررسی ۱۶ بیت بالایی expression، دستورالعمل‌های LDI32 را بهینه‌سازی خواهد کرد. اگر همگی صفر باشند، آن‌گاه LD دستورالعمل LDI32 را به یک LDI منفرد کوتاه می‌کند. در این صورت، "as" بازنشانی‌های DIFF را برای عبارت‌های diff صادر خواهد کرد.
فرض می‌کند که LD دستورالعمل‌های LDI32 را بهینه‌سازی نخواهد کرد. در نتیجه، بازنشانی‌های DIFF صادر نخواهند شد.
در صورتی که نام یک برچسب با نام یک ثبات یکسان باشد، هشدار نمی‌دهد. معمولاً برنامه‌نویسان اسمبلی مایلند این هشدار صادر شود. کامپایلرهای C ممکن است بخواهند این قابلیت را غیرفعال کنند.

گزینه‌های زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ MIPS پیکربندی شده باشد.

این گزینه بیشترین اندازهٔ شیئی را مشخص می‌کند که می‌تواند به‌طور ضمنی با ثبات "gp" ارجاع داده شود. این گزینه تنها برای اهدافی پذیرفته می‌شود که از قالب ECOFF استفاده می‌کنند، مانند DECstation تحت اجرای Ultrix. مقدار پیش‌فرض ۸ است.
تولید خروجی با قالب «بزرگ‌پایان» (big endian).
تولید خروجی با قالب «کوچک‌پایان» (little endian).
تولید کد برای یک سطح معین از معماری مجموعه دستورالعمل MIPS. -mips1 یک نام مستعار برای -march=r3000، -mips2 یک نام مستعار برای -march=r6000، -mips3 یک نام مستعار برای -march=r4000 و -mips4 یک نام مستعار برای -march=r8000 است. -mips5، -mips32، -mips32r2، -mips32r3، -mips32r5، -mips32r6، -mips64، -mips64r2، -mips64r3، -mips64r5 و -mips64r6 به ترتیب با پردازنده‌های عمومی معماری‌های MIPS V، MIPS32، MIPS32 Release 2، MIPS32 Release 3، MIPS32 Release 5، MIPS32 Release 6، MIPS64، MIPS64 Release 2، MIPS64 Release 3، MIPS64 Release 5 و MIPS64 Release 6 ISA متناظر هستند.
تولید کد برای یک CPU خاص MIPS.
زمان‌بندی و بهینه‌سازی برای یک CPU خاص MIPS.
باعث درج دستورات nop می‌شود در صورتی که خواندن از ثبات مقصد یک دستورالعمل mfhi یا mflo در دو دستورالعمل بعدی رخ دهد.
باعث درج دستورات nop می‌شود در صورتی که پس از یک دستورالعمل dmult یا dmultu یک دستورالعمل بارگذاری (load) قرار گیرد.
تلاشی برای زمان‌بندی دستورالعمل پیشین در شکاف تاخیر (delay slot) یک دستورالعمل پرش که در انتهای یک حلقهٔ کوتاه متشکل از شش دستورالعمل یا کمتر قرار دارد نمی‌کند و همیشه به‌جای آن یک دستورالعمل "nop" را در آنجا زمان‌بندی می‌کند. اشکال حلقه‌های کوتاه تحت شرایط خاصی باعث می‌شود حلقه‌ها به‌دلیل یک باگ سخت‌افزاری در تراشهٔ R5900، تنها یک یا دو بار اجرا شوند..IP -mdebug 4
باعث می‌شود خروجی اشکال‌زدایی به سبک stabs به‌جای بخش‌های استاندارد ELF .stabs، درون یک بخش .mdebug به سبک ECOFF قرار گیرد.
تولید بخش‌های ".pdr" را کنترل می‌کند.
اندازهٔ ثبات‌ها معمولاً بر اساس ISA و ABI تعیین می‌شود، اما این پرچم‌ها گروه خاصی از ثبات‌ها را وادار می‌کنند که همواره ۳۲ بیتی در نظر گرفته شوند. -mgp32 اندازهٔ ثبات‌های همه‌منظوره را کنترل می‌کند و -mfp32 اندازهٔ ثبات‌های ممیز شناور را مشخص می‌سازد.
اندازهٔ ثبات‌ها معمولاً بر اساس ISA و ABI تعیین می‌شود، اما این پرچم‌ها گروه خاصی از ثبات‌ها را وادار می‌کنند که همواره ۶۴ بیتی در نظر گرفته شوند. -mgp64 اندازهٔ ثبات‌های همه‌منظوره را کنترل می‌کند و -mfp64 اندازهٔ ثبات‌های ممیز شناور را مشخص می‌سازد.
اندازهٔ ثبات‌ها معمولاً بر اساس ISA و ABI تعیین می‌شود، اما استفاده از این پرچم در ترکیب با -mabi=32 گونه‌ای از ABI را فعال می‌کند که با ثبات‌های ممیز شناور ۳۲ یا ۶۴ بیتی به‌درستی کار خواهد کرد.
در صورت پشتیبانی ISA، استفاده از عملیات ممیز شناور روی ثبات‌های دقت‌تکیِ (single-precision) فرد را فعال می‌کند. -mfpxx مستلزم استفاده از -mno-odd-spreg است، در غیر این صورت حالت پیش‌فرض -modd-spreg خواهد بود.
برای پردازندهٔ MIPS 16 کد تولید می‌کند. این عمل معادل قرار دادن ".module mips16" در ابتدای فایل اسمبلی است. -no-mips16 این گزینه را غیرفعال می‌کند.
استفاده از دستورالعمل‌های MIPS16e2 را در حالت MIPS16 فعال می‌کند. این عمل معادل قرار دادن ".module mips16e2" در ابتدای فایل اسمبلی است. -mno-mips16e2 این گزینه را غیرفعال می‌کند.
برای پردازندهٔ microMIPS کد تولید می‌کند. این عمل معادل قرار دادن ".module micromips" در ابتدای فایل اسمبلی است. -mno-micromips این گزینه را غیرفعال می‌کند که معادل قرار دادن ".module nomicromips" در ابتدای فایل اسمبلی است.
افزونهٔ SmartMIPS را به مجموعه دستورالعمل‌های MIPS32 اضافه می‌کند. این عمل معادل قرار دادن ".module smartmips" در ابتدای فایل اسمبلی است. -mno-smartmips این گزینه را غیرفعال می‌کند.
برای افزونهٔ کاربردخاص MIPS-3D کد تولید می‌کند. این گزینه به اسمبلر دستور می‌دهد که دستورالعمل‌های MIPS-3D را بپذیرد. -no-mips3d این گزینه را غیرفعال می‌کند.
برای افزونهٔ کاربردخاص MDMX کد تولید می‌کند. این گزینه به اسمبلر دستور می‌دهد که دستورالعمل‌های MDMX را بپذیرد. -no-mdmx این گزینه را غیرفعال می‌کند.
برای افزونهٔ کاربردخاص DSP Release 1 کد تولید می‌کند. این گزینه به اسمبلر دستور می‌دهد که دستورالعمل‌های DSP Release 1 را بپذیرد. -mno-dsp این گزینه را غیرفعال می‌کند.
برای افزونهٔ کاربردخاص DSP Release 2 کد تولید می‌کند. این گزینه مستلزم -mdsp است و به اسمبلر می‌گوید دستورالعمل‌های DSP Release 2 را بپذیرد. -mno-dspr2 این گزینه را غیرفعال می‌کند.
برای افزونهٔ کاربردخاص DSP Release 3 کد تولید می‌کند. این گزینه مستلزم -mdsp و -mdspr2 است و به اسمبلر می‌گوید دستورالعمل‌های DSP Release 3 را بپذیرد. -mno-dspr3 این گزینه را غیرفعال می‌کند.
برای افزونهٔ معماری MIPS SIMD کد تولید می‌کند. این گزینه به اسمبلر می‌گوید دستورالعمل‌های MSA را بپذیرد. -mno-msa این گزینه را غیرفعال می‌کند.
برای افزونهٔ MIPS eXtended Physical Address (XPA) کد تولید می‌کند. این گزینه به اسمبلر می‌گوید دستورالعمل‌های XPA را بپذیرد. -mno-xpa این گزینه را غیرفعال می‌کند.
برای افزونهٔ کاربردخاص MT کد تولید می‌کند. این گزینه به اسمبلر دستور می‌دهد که دستورالعمل‌های MT را بپذیرد. -mno-mt این گزینه را غیرفعال می‌کند.
برای افزونهٔ کاربردخاص MCU کد تولید می‌کند. این گزینه به اسمبلر دستور می‌دهد که دستورالعمل‌های MCU را بپذیرد. -mno-mcu این گزینه را غیرفعال می‌کند.
برای افزونهٔ کاربردخاص وارسی افزونگی چرخه‌ای (CRC) در MIPS کد تولید می‌کند. این گزینه به اسمبلر دستور می‌دهد دستورالعمل‌های CRC را بپذیرد. -mno-crc این گزینه را غیرفعال می‌کند.
تولید کد برای افزونهٔ ویژهٔ کاربرد Global INValidate (GINV). این گزینه به اسمبلر اعلام می‌کند که دستورالعمل‌های GINV را بپذیرد. -mno-ginv این گزینه را غیرفعال می‌کند.
تولید کد برای افزونهٔ ویژهٔ کاربرد دستورالعمل‌های چندرسانه‌ای لونگ‌سان (MMI). این گزینه به اسمبلر اعلام می‌کند که دستورالعمل‌های MMI را بپذیرد. -mno-loongson-mmi این گزینه را غیرفعال می‌کند.
تولید کد برای دستورالعمل‌های حافظهٔ محتوا-آدرس‌پذیر لونگ‌سان (CAM). این گزینه به اسمبلر اعلام می‌کند که دستورالعمل‌های CAM لونگ‌سان را بپذیرد. -mno-loongson-cam این گزینه را غیرفعال می‌کند.
تولید کد برای دستورالعمل‌های افزونه‌های لونگ‌سان (EXT). این گزینه به اسمبلر اعلام می‌کند که دستورالعمل‌های EXT لونگ‌سان را بپذیرد. -mno-loongson-ext این گزینه را غیرفعال می‌کند.
تولید کد برای دستورالعمل‌های نگارش ۲ افزونه‌های لونگ‌سان (EXT2). این گزینه مستلزم -mloongson-ext است. این گزینه به اسمبلر اعلام می‌کند که دستورالعمل‌های EXT2 لونگ‌سان را بپذیرد. -mno-loongson-ext2 این گزینه را غیرفعال می‌کند.
تنها از کدگذاری‌های دستورالعمل ۳۲-بیتی هنگام تولید کد برای پردازندهٔ microMIPS استفاده شود. این گزینه مانع استفاده از هرگونه دستورالعمل ۱۶-بیتی می‌شود. این عمل معادل قرار دادن ".set insn32" در ابتدای فایل اسمبلی است. -mno-insn32 این گزینه را غیرفعال می‌کند. این نیز معادل قرار دادن ".set noinsn32" در ابتدای فایل اسمبلی است. به‌طور پیش‌فرض -mno-insn32 انتخاب شده است که امکان استفاده از تمام دستورالعمل‌ها را فراهم می‌کند.
گزینهٔ --no-construct-floats ساخت مقادیر ثابت ممیز شناور با عرض دوگانه را با بارگذاری دو نیمهٔ مقدار در دو ثبات ممیز شناور با عرض تکی که ثبات با عرض دوگانه را تشکیل می‌دهند، غیرفعال می‌کند. به‌طور پیش‌فرض --construct-floats انتخاب شده است که امکان ساخت این مقادیر ثابت ممیز شناور را فراهم می‌سازد.
گزینهٔ --relax-branch تطبیق (relaxation) شاخه‌های خارج از محدوده را فعال می‌کند. به‌طور پیش‌فرض --no-relax-branch انتخاب شده است که موجب می‌شود هر شاخهٔ خارج از محدوده خطایی تولید کند.
نادیده گرفتن بررسی‌های شاخه برای جابه‌جایی‌های نامعتبر میان حالت‌های ISA. معناشناسی شاخه‌ها امکان تغییر حالت ISA را فراهم نمی‌کند، بنابراین در بیشتر موارد حالت ISA که یک شاخه برای آن کدگذاری شده است باید با حالت ISA برچسب مقصدِ شاخه یکسان باشد. از این رو GAS بررسی‌هایی را پیاده‌سازی کرده است که در زمان اسمبل شاخه، تطابق این دو حالت ISA را اعتبارسنجی می‌کند. گزینهٔ -mignore-branch-isa این بررسی‌ها را غیرفعال می‌کند. به‌طور پیش‌فرض -mno-ignore-branch-isa انتخاب شده است که موجب می‌شود هر شاخهٔ نامعتبر که نیازمند جابه‌جایی میان حالت‌های ISA باشد، یک خطا تولید کند.
انتخاب میان قالب‌های کدگذاری NaN در IEEE 754-2008 (-mnan=2008) یا موروثی (-mnan=legacy). دومی حالت پیش‌فرض است.
این گزینه پیش‌تر برای جابه‌جایی میان خروجی‌های ELF و ECOFF در مقصدهایی مانند IRIX 5 که از هر دو پشتیبانی می‌کردند به کار می‌رفت. پشتیبانی از MIPS ECOFF در نسخهٔ 2.24 از GAS حذف شد، بنابراین این گزینه اکنون کاربرد چندانی ندارد. این گزینه برای سازگاری عقبروی حفظ شده است.

نام‌های پیکربندی موجود عبارتند از: mipself، mipslelf و mipsbelf. انتخاب mipself اکنون هیچ اثری ندارد، زیرا خروجی همواره ELF است. mipslelf و mipsbelf به ترتیب خروجی‌های little-endian و big-endian را انتخاب می‌کنند، اما اکنون به جای آن‌ها گزینه‌های -EL و -EB گزینه‌های مرجح هستند.

as این گزینه را نادیده می‌گیرد. این گزینه برای سازگاری با ابزارهای بومی (native) پذیرفته می‌شود.
کنترل نحوهٔ مدیریت سرریز ضرب و تقسیم بر صفر. --trap یا --no-break (که هم‌معنی هستند) یک استثنای trap ایجاد می‌کنند (و تنها برای معماری مجموعه دستورالعمل سطح ۲ و بالاتر کار می‌کنند)؛ --break یا --no-trap (که آن‌ها نیز هم‌معنی بوده و پیش‌فرض هستند) یک استثنای break ایجاد می‌کنند.
هنگامی که از این گزینه استفاده شود، as هر بار که دستورالعمل nop را از یک ماکرو تولید کند، هشداری صادر خواهد کرد.

گزینه‌های زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ LoongArch پیکربندی شده باشد.

تولید کد مستقل از موقعیت (position-independent code)
کد مستقل از موقعیت تولید نشود (پیش‌فرض)

گزینه‌های زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ Meta پیکربندی شده باشد.

"-mcpu=metac11"
تولید کد برای Meta 1.1.
"-mcpu=metac12"
تولید کد برای Meta 1.2.
"-mcpu=metac21"
تولید کد برای Meta 2.1.
"-mfpu=metac21"
اجازه به کد برای استفاده از سخت‌افزار FPU پردازندهٔ Meta 2.1.

برای مستندات مربوط به گزینه‌های ویژهٔ MMIX صفحه‌های info را ببینید.

گزینه‌های زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ NDS32 پیکربندی شده باشد.

"-O1"
بهینه‌سازی برای کارایی.
"-Os"
بهینه‌سازی برای اندازه.
"-EL"
تولید خروجی داده به صورت little endian.
"-EB"
تولید خروجی داده به صورت little endian.
"-mpic"
تولید PIC.
"-mno-fp-as-gp-relax"
جلوگیری از تطبیق fp-as-gp برای این فایل.
"-mb2bb-relax"
بهینه‌سازی شاخهٔ پشت‌سرهم (Back-to-back).
"-mno-all-relax"
جلوگیری از تمام تطبیق‌ها برای این فایل.
"-march=<arch name>";
اسمبل برای معماری <arch name> که می‌تواند v3، v3j، v3m، v3f، v3s، v2، v2j، v2f، v2s باشد.
"-mbaseline=<baseline>"
اسمبل برای خط‌پایهٔ (baseline) <baseline> که می‌تواند v2، v3، v3m باشد.
"-mfpu-freg=FREG"
مشخص کردن یک پیکربندی FPU.
"0 8 SP / 4 DP registers"
"1 16 SP / 8 DP registers"
"2 32 SP / 16 DP registers"
"3 32 SP / 32 DP registers"
"-mabi=abi"
مشخص کردن نسخه abi؛ مقدار <abi> می‌تواند v1، v2، v2fp یا v2fpp باشد.
"-m[no-]mac"
فعال/غیرفعال کردن پشتیبانی از دستورالعمل‌های ضرب (Multiply).
"-m[no-]div"
فعال/غیرفعال کردن پشتیبانی از دستورالعمل‌های تقسیم (Divide).
"-m[no-]16bit-ext"
فعال/غیرفعال کردن افزونه‌ی ۱۶ بیتی (16-bit extension).
"-m[no-]dx-regs"
فعال/غیرفعال کردن ثبات‌های d0/d1.
"-m[no-]perf-ext"
فعال/غیرفعال کردن افزونه‌ی کارایی (Performance extension).
"-m[no-]perf2-ext"
فعال/غیرفعال کردن افزونه‌ی کارایی ۲ (Performance extension 2).
"-m[no-]string-ext"
فعال/غیرفعال کردن افزونه‌ی رشته (String extension).
"-m[no-]reduced-regs"
فعال/غیرفعال کردن گزینه‌ی پیکربندی ثبات‌های تقلیل‌یافته (GPR16).
"-m[no-]audio-isa-ext"
فعال/غیرفعال کردن افزونه‌ی AUDIO ISA.
"-m[no-]fpu-sp-ext"
فعال/غیرفعال کردن افزونه‌ی دقت تکی ممیز شناور (FPU SP extension).
"-m[no-]fpu-dp-ext"
فعال/غیرفعال کردن افزونه‌ی دقت مضاعف ممیز شناور (FPU DP extension).
"-m[no-]fpu-fma"
فعال/غیرفعال کردن دستورالعمل‌های ضرب-جمع آمیخته‌ی ممیز شناور (FPU fused-multiply-add).
"-mall-ext"
فعال کردن تمام افزونه‌ها و پشتیبانی از دستورالعمل‌ها.

گزینه‌های زیر هنگامی که as برای پردازنده‌های PowerPC پیکربندی شده باشد، در دسترس هستند.

تولید ELF32 یا XCOFF32.
تولید ELF64 یا XCOFF64.
تنظیم EF_PPC_RELOCATABLE_LIB در پرچم‌های ELF.
تولید کد برای POWER/2 (RIOS2).
تولید کد برای POWER (RIOS1).
تولید کد برای PowerPC 601.
تولید کد برای PowerPC 603/604.
تولید کد برای PowerPC 403/405.
تولید کد برای PowerPC 440؛ شامل BookE و برخی از دستورالعمل‌های 405.
تولید کد برای PowerPC 464.
تولید کد برای PowerPC 476.
تولید کد برای PowerPC 7400/7410/7450/7455.
تولید کد برای PowerPC 750CL/Gekko/Broadway.
تولید کد برای PowerPC 821/850/860.
تولید کد برای PowerPC 620/625/630.
تولید کد برای مشتقات e200؛ e200z2 به همراه LSP و e200z4 به همراه SPE.
تولید کد برای خانواده‌ی PowerPC e300.
تولید کد برای مجموعه هسته Motorola e500.
تولید کد برای مجموعه هسته Freescale e500mc.
تولید کد برای مجموعه هسته Freescale e500mc64.
تولید کد برای مجموعه هسته Freescale e5500.
تولید کد برای مجموعه هسته Freescale e6500.
فعال کردن دستورالعمل‌های LSP. (باعث غیرفعال شدن SPE و SPE2 می‌شود.)
تولید کد برای دستورالعمل‌های Motorola SPE. (باعث غیرفعال شدن LSP می‌شود.)
تولید کد برای دستورالعمل‌های Freescale SPE2. (باعث غیرفعال شدن LSP می‌شود.)
تولید کد برای مجموعه هسته AppliedMicro Titan.
تولید کد برای PowerPC 64، شامل دستورالعمل‌های پل (bridge).
تولید کد برای BookE ۳۲ بیتی.
تولید کد برای معماری A2.
تولید کد برای پردازنده‌های دارای دستورالعمل‌های AltiVec.
تولید کد برای دستورالعمل‌های Freescale PowerPC VLE.
تولید کد برای پردازنده‌های دارای دستورالعمل‌های برداری-اسکالر (VSX).
تولید کد برای پردازنده‌های دارای دستورالعمل‌های حافظه تراکنشی سخت‌افزاری (Hardware Transactional Memory).
تولید کد برای معماری Power4.
تولید کد برای معماری Power5.
تولید کد برای معماری Power6..IP "-mpower7, -mpwr7" 4 تولید کد برای معماری Power7.
تولید کد برای معماری Power8.
تولید کد برای معماری Power9.
تولید کد برای معماری Power10.
تولید کد برای معماری Power11.
تولید کد برای معماری 'future'.
تولید کد برای معماری Cell Broadband Engine.
تولید کد برای دستورالعمل‌های مشترک Power/PowerPC.
تولید کد برای هر معماری (PWR/PWRX/PPC).
مجاز دانستن نام‌های نمادین برای ثبات‌ها.
غیرمجاز دانستن نام‌های نمادین برای ثبات‌ها.
پشتیبانی از گزینهٔ -mrelocatable در GCC.
پشتیبانی از گزینهٔ -mrelocatable-lib در GCC.
تنظیم بیت PPC_EMB در پرچم‌های ELF.
تولید کد برای یک ماشین little endian.
تولید کد برای یک ماشین big endian.
تولید کد برای Solaris.
عدم تولید کد برای Solaris.
اگر یک رهنمود هم‌ترازی بیش از count دستور nop درج کند، یک انشعاب در ابتدا قرار می‌دهد تا از اجرای nopها صرف‌نظر شود.

گزینه‌های زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ RISC-V پیکربندی شده باشد.

تولید کد مستقل از موقعیت (position-independent code).
عدم تولید کد مستقل از موقعیت (پیش‌فرض).
انتخاب isa پایه، همان‌طور که توسط ISA یا Profiles یا Profies_ISA مشخص شده است. برای نمونه -march=rv32ima، -march=RVI20U64 -march=RVI20U64_d. اگر این گزینه و مشخصه‌های معماری تنظیم نشده باشند، اسمبلر تنظیمات پیکربندی پیش‌فرض --with-arch=ISA را بررسی خواهد کرد.
انتخاب نسخهٔ مشخصات (spec) پیش‌فرض isa. اگر نسخهٔ ISA توسط -march تعیین نشده باشد، اسمبلر به تنظیم نسخه بر اساس مشخصات پیش‌فرضِ انتخاب‌شده کمک می‌کند. اگر این گزینه تنظیم نشده باشد، اسمبلر تنظیمات پیکربندی پیش‌فرض --with-isa-spec=ISAspec را بررسی خواهد کرد.
انتخاب نسخهٔ مشخصات سطح دسترسی (privileged spec). می‌توان بر اساس مشخصات انتخاب‌شده تصمیم گرفت که آیا CSR معتبر است یا خیر. اگر این گزینه و مشخصه‌های سطح دسترسی تنظیم نشده باشند، اسمبلر تنظیمات پیکربندی پیش‌فرض --with-priv-spec=PRIVspec را بررسی خواهد کرد.
انتخاب ABI، که یا "ilp32" است یا "lp64"، که به‌صورت اختیاری پس از آن "f"، "d"، یا "q" برای مشخص کردن قرارداد فراخوانی ممیز شناور با دقت یگانه، دقت دوگانه، یا دقت چهارگانه، یا هیچ‌چیز یا "e" برای مشخص کردن قرارداد فراخوانی ممیز شناور نرم‌افزاری (soft-float) می‌آید ("e" نشان‌دهندهٔ ABI ممیز شناور نرم‌افزاری RVE است).
بهره‌گیری از ساده‌سازی‌های پیونددهنده (linker relaxations) برای کاهش تعداد دستورالعمل‌های مورد نیاز جهت تحقق نشانی‌های نماد. (پیش‌فرض)
عدم انجام ساده‌سازی‌های پیونددهنده.
تولید محتویات پیش‌فرض برای بخش مشخصهٔ riscv elf در صورتی که رهنمودهای .attribute تنظیم نشده باشند. این بخش برای ثبت اطلاعاتی به کار می‌رود که یک پیونددهنده یا بارگذار زمان اجرا برای بررسی سازگاری به آن نیاز دارد. این اطلاعات شامل رشتهٔ ISA، الزام هم‌ترازی پشته، دسترسی‌های حافظهٔ غیرهم‌تراز، و شماره نسخهٔ اصلی، فرعی و بازبینی مشخصات سطح دسترسی است.
عدم تولید بخش مشخصهٔ پیش‌فرض riscv elf در صورتی که رهنمودهای .attribute تنظیم نشده باشند.
فعال‌سازی بررسی CSR برای CSRهای وابسته به ISA و CSRهای فقط‌خواندنی. CSRهای وابسته به ISA تنها هنگامی معتبر هستند که ISA مشخص‌شده تنظیم شده باشد. CSRهای فقط‌خواندنی نمی‌توانند توسط دستورالعمل‌های CSR نوشته شوند.
عدم انجام بررسی CSR.
تولید کد برای یک ماشین little endian.
تولید کد برای یک ماشین big endian.

برای مستندات گزینه‌های مختص RX به صفحه‌های info مراجعه کنید.

گزینه‌های زیر هنگامی در دسترس هستند که as برای خانوادهٔ پردازنده‌های s390 پیکربندی شده باشد.

انتخاب اندازهٔ کلمه، یا ۳۱/۳۲ بیتی یا ۶۴ بیتی.
انتخاب حالت معماری، یا Enterprise System Architecture (esa) یا حالت z/Architecture (zarch).
مشخص می‌کند کدام گونهٔ پردازندهٔ s390 هدف است: g5 (یا arch3)، g6، z900 (یا arch5)، z990 (یا arch6)، z9-109، z9-ec (یا arch7)، z10 (یا arch8)، z196 (یا arch9)، zEC12 (یا arch10)، z13 (یا arch11)، z14 (یا arch12)، z15 (یا arch13)، z16 (یا arch14)، یا z17 (یا arch15).
مجاز یا غیرمجاز دانستن نام‌های نمادین برای ثبات‌ها.
هشدار دادن هر زمان که عملوند یک ثبات پایه یا شاخص مشخص شده باشد اما مقدار آن صفر ارزیابی شود.
کنترل می‌کند که آیا اسمبلر بررسی‌های نوع نام ثبات را انجام داده و در صورت عدم تطابق با نوع ثبات عملوند، یک پیام هشدار تولید کند یا خیر. حالت پیش‌فرض (که می‌توان آن را با استفاده از آرگومان relaxed بازیابی کرد) انجام بررسی‌های آسان‌گیرانه نوع نام ثبات است، که به نام‌های ثبات ممیز شناور (FPR) از %f0 تا %f15 اجازه می‌دهد به عنوان آرگومان برای عملوندهای ثبات برداری (VR) مشخص شوند، و به نام‌های ثبات برداری (VR) از %v0 تا %v15 اجازه می‌دهد به عنوان آرگومان برای عملوندهای ثبات ممیز شناور (FPR) مشخص گردند. این امر قابل قبول است زیرا FPR در نیمه پایینی VR تعبیه شده است. با استفاده از آرگومان strict، بررسی‌های سخت‌گیرانه نوع نام ثبات انجام می‌شود. آرگومان no که معادل -mno-warn-regtype-mismatch است، هرگونه بررسی نوع نام ثبات را غیرفعال می‌کند.

گزینه‌های زیر زمانی در دسترس هستند که as برای پردازنده TMS320C6000 پیکربندی شده باشد.

(تنها) دستورالعمل‌های معماری arch را فعال می‌کند. به طور پیش‌فرض، همه دستورالعمل‌ها مجاز هستند.

مقدارهای زیر برای arch پذیرفته می‌شوند: "c62x"، "c64x"، "c64x+"، "c67x"، "c67x+"، "c674x".

گزینه -mdsbt باعث می‌شود که اسمبلر مشخصه "Tag_ABI_DSBT" را با مقدار 1 تولید کند، که نشان می‌دهد کد از آدرس‌دهی DSBT استفاده می‌کند. گزینه -mno-dsbt که پیش‌فرض است، باعث می‌شود این برچسب دارای مقدار 0 باشد که نشان می‌دهد کد از آدرس‌دهی DSBT استفاده نمی‌کند. پیونددهنده در صورتی که اشیاء از انواع مختلف (DSBT و غیر DSBT) به یکدیگر پیوند داده شوند، هشداری صادر خواهد کرد.
گزینه -mpid= باعث می‌شود که اسمبلر مشخصه "Tag_ABI_PID" را با مقداری که نشان‌دهنده شکل آدرس‌دهی داده استفاده‌شده توسط کد است، تولید کند. -mpid=no که پیش‌فرض است، نشان‌دهنده آدرس‌دهی داده وابسته به موقعیت است؛ -mpid=near نشان‌دهنده آدرس‌دهی مستقل از موقعیت با دسترسی‌های GOT با استفاده از آدرس‌دهی DP نزدیک است؛ و -mpid=far نشان‌دهنده آدرس‌دهی مستقل از موقعیت با دسترسی‌های GOT با استفاده از آدرس‌دهی DP دور است. پیونددهنده در صورتی که اشیاء ساخته‌شده با تنظیمات متفاوتی از این گزینه به یکدیگر پیوند داده شوند، هشداری صادر خواهد کرد.
گزینه -mpic باعث می‌شود که اسمبلر مشخصه "Tag_ABI_PIC" را با مقدار 1 تولید کند که نشان می‌دهد کد از آدرس‌دهی کد مستقل از موقعیت استفاده می‌کند. گزینه "-mno-pic" که پیش‌فرض است، باعث می‌شود این برچسب دارای مقدار 0 باشد که نشان‌دهنده آدرس‌دهی کد وابسته به موقعیت است. پیونددهنده در صورتی که اشیاء با نوع متفاوت (وابسته به موقعیت و مستقل از موقعیت) به یکدیگر پیوند داده شوند، هشداری صادر خواهد کرد.
تولید کد برای ترتیب بایت (endianness) مشخص‌شده. پیش‌فرض، little-endian است.

گزینه‌های زیر زمانی در دسترس هستند که as برای پردازنده TILE-Gx پیکربندی شده باشد.

انتخاب اندازه کلمه، ۳۲ بیتی یا ۶۴ بیتی.
انتخاب ترتیب بایت، یا big-endian (-EB) یا little-endian (-EL).

گزینه زیر زمانی در دسترس است که as برای پردازنده Visium پیکربندی شده باشد.

این گزینه معماری هدف را مشخص می‌کند. اگر تلاشی برای اسمبل کردن دستورالعملی انجام شود که بر روی معماری هدف اجرا نخواهد شد، اسمبلر یک پیام خطا صادر خواهد کرد.

نام‌های زیر شناسایی می‌شوند: "mcm24" "mcm" "gr5" "gr6"

گزینه‌های زیر زمانی در دسترس هستند که as برای پردازنده Xtensa پیکربندی شده باشد.

نحوه مدیریت مخازن لیترال (literal pools) را کنترل می‌کند. پیش‌فرض --no-text-section-literals است که لیترال‌ها را در بخش‌های جداگانه در فایل خروجی قرار می‌دهد. این به مخزن لیترال امکان می‌دهد تا در یک RAM/ROM داده قرار داده شود. با --text-section-literals، لیترال‌ها در بخش text پراکنده می‌شوند تا در نزدیک‌ترین حالت ممکن به مراجع خود قرار گیرند. این ممکن است برای فایل‌های اسمبلی بزرگ لازم باشد، جایی که در غیر این صورت لیترال‌ها خارج از محدوده دستورالعمل‌های "L32R" در بخش text خواهند بود. لیترال‌ها به دنبال دایرکتیوهای ".literal_position" یا پیش از دستورالعمل‌های "ENTRY" در مخازن گروه‌بندی می‌شوند. این گزینه‌ها تنها بر لیترال‌هایی اثر می‌گذارند که از طریق دستورالعمل‌های "L32R" وابسته به شمارنده برنامه (PC-relative) ارجاع داده شده‌اند؛ لیترال‌ها برای دستورالعمل‌های حالت مطلق "L32R" به طور جداگانه مدیریت می‌شوند.
نحوه برخورد با مخازن لیترال را کنترل می‌کند. پیش‌فرض --no-auto-litpools است که در صورت نبود --text-section-literals، لیترال‌ها را در بخش‌های جداگانه در فایل خروجی قرار می‌دهد. این به مخزن لیترال امکان می‌دهد تا در یک RAM/ROM داده قرار داده شود. با --auto-litpools، لیترال‌ها در بخش text پراکنده می‌شوند تا تا جای ممکن نزدیک به مراجع خود بمانند، و نیازی به دایرکتیوهای صریح ".literal_position" نیست. این ممکن است برای توابع بسیار بزرگ لازم باشد، جایی که ممکن است یک مخزن لیترال منفرد در ابتدای تابع برای دستورالعمل‌های "L32R" در انتهای آن قابل دسترس نباشد. این گزینه‌ها تنها بر لیترال‌هایی اثر می‌گذارند که از طریق دستورالعمل‌های "L32R" وابسته به PC ارجاع داده می‌شوند؛ لیترال‌ها برای دستورالعمل‌های حالت مطلق "L32R" به طور جداگانه مدیریت می‌شوند. در صورت استفاده همزمان با --text-section-literals، گزینه --auto-litpools اولویت دارد.
به اسمبلر مشخص می‌کند که آیا دستورالعمل‌های "L32R" از آدرس‌دهی مطلق یا وابسته به PC استفاده کنند. اگر پردازنده شامل گزینه آدرس‌دهی مطلق باشد، حالت پیش‌فرض استفاده از بازنشانی‌های (relocations) مطلق "L32R" است. در غیر این صورت، تنها می‌توان از بازنشانی‌های وابسته به PC برای "L32R" استفاده کرد.
ترازسازی خودکار را برای کاهش جریمه‌های انشعاب، با مقداری هزینه در افزایش اندازه کد، فعال یا غیرفعال می‌کند. این بهینه‌سازی به طور پیش‌فرض فعال است. توجه داشته باشید که اسمبلر همیشه دستورالعمل‌هایی مانند "LOOP" را که الزامات ترازسازی ثابت دارند، تراز خواهد کرد.
تبدیل دستورالعمل‌های فراخوانی (call) را برای مجاز ساختن فراخوانی‌ها در محدوده بزرگ‌تری از آدرس‌ها فعال یا غیرفعال می‌کند. این گزینه باید زمانی استفاده شود که مقاصد فراخوانی ممکن است خارج از محدوده باشند. این گزینه ممکن است اندازه کد و کارایی را کاهش دهد، اما پیونددهنده معمولاً می‌تواند سربار غیرضروری را در صورتی که فراخوانی در نهایت در محدوده قرار گیرد بهینه‌سازی و حذف کند. پیش‌فرض --no-longcalls است.
تمام تبدیلات اسمبلر روی دستورالعمل‌های Xtensa را، شامل هر دو مورد آزادسازی (relaxation) و بهینه‌سازی، فعال یا غیرفعال می‌کند. حالت پیش‌فرض --transform است؛ --no-transform تنها باید در موارد نادری استفاده شود که دستورالعمل‌ها باید دقیقاً به همان صورت مشخص‌شده در منبع اسمبلی باشند. استفاده از --no-transform باعث می‌شود که عملوندهای دستورالعمل خارج از محدوده به عنوان خطا در نظر گرفته شوند.
تغییر نام بخش oldname به newname. این گزینه می‌تواند چندین بار برای تغییر نام چندین بخش استفاده شود.
تبدیل دستورالعمل‌های پرش (jump) را برای مجاز ساختن پرش‌ها در محدوده بزرگ‌تری از آدرس‌ها فعال یا غیرفعال می‌کند. این گزینه باید زمانی استفاده شود که مقاصد پرش ممکن است خارج از محدوده باشند. در نبود چنین پرش‌هایی، این گزینه بر اندازه کد یا کارایی تأثیر نمی‌گذارد. پیش‌فرض --trampolines است.
تگ ABI نوشته‌شده در بخش ".xtensa.info" را انتخاب می‌کند. تگ ABI نشان‌دهنده ABI کد اسمبلی است. در صورت تلاش برای پیوند فایل‌های شیء با تگ‌های ABI ناسازگار، هشداری توسط پیونددهنده صادر می‌شود. ABI پیش‌فرض توسط پیکربندی هسته Xtensa تعیین می‌شود.

گزینه‌های زیر زمانی در دسترس هستند که as برای پردازنده Z80 پیکربندی شده باشد..PP @chapter ویژگی‌های وابسته به Z80

این گزینه پردازندهٔ مقصد را مشخص می‌کند. اگر تلاشی برای اسمبل کردن دستوری انجام شود که روی پردازندهٔ مقصد قابل اجرا نیست، اسمبلر یک پیام خطا صادر خواهد کرد. نام‌های پردازنده‌های زیر شناخته‌شده هستند: "z80", "z180", "ez80", "gbz80", "z80n", "r800". علاوه بر مجموعه دستورالعمل پایه، می‌توان به اسمبلر اعلام کرد که نمادهای یادافزای (mnemonics) افزونه را بپذیرد. برای مثال، "-march=z180+sli+infc" پردازندهٔ z180 را با دستورهای SLI و IN F,(C) گسترش می‌دهد. افزونه‌های زیر در حال حاضر پشتیبانی می‌شوند: "full" (تمام دستورالعمل‌های شناخته‌شده)، "adl" (حالت پردازندهٔ ADL به‌طور پیش‌فرض، فقط eZ80)، "sli" (دستور شناخته‌شده با عنوان SLI، SLL یا SL1)، "xyhl" (دستورالعمل‌ها با نیمه‌های ثبات‌های شاخص: IXL، IXH، IYL، IYH)، "xdcb" (دستورالعمل‌هایی مانند RotOp (II+d),R و BitOp n,(II+d),R)، "infc" (دستور IN F,(C) یا IN (C))، "outc0" (دستور OUT (C),0). توجه داشته باشید که به جای گسترش یک مجموعه دستورالعمل پایه، نمادهای یادافزای افزونه که با "-" آغاز می‌شوند قابلیت مربوطه را لغو می‌کنند: "-march=z80-full+xyhl" ابتدا تمام افزونه‌های پیش‌فرض را حذف کرده و فقط پشتیبانی از نیمه‌های ثبات‌های شاخص را اضافه می‌کند.

اگر این گزینه مشخص نشود، "-march=z80+xyhl+infc" در نظر گرفته می‌شود.

تمام برچسب‌ها با پیشوند مشخص‌شده را به عنوان محلی نشانه‌گذاری می‌کند؛ اما چنین برچسبی می‌تواند به‌طور صریح در کد به عنوان سراسری علامت‌گذاری شود. این گزینه پیشوند برچسب محلی پیش‌فرض ".L" را تغییر نمی‌دهد، بلکه صرفاً پیشوند جدیدی اضافه می‌کند.
برچسب‌های بدون دونقطه (colon) را می‌پذیرد. با تمام نمادها در ابتدای خط به عنوان برچسب رفتار می‌شود.
کد اسمبلی تولیدشده توسط SDCC را می‌پذیرد.
قالب اعداد ممیز شناور با دقت یگانه (Single precision). پیش‌فرض: ieee754 (۳۲ بیت).
قالب اعداد ممیز شناور با دقت دوگانه (Double precision). پیش‌فرض: ieee754 (۶۴ بیت).

gcc(1)، ld(1)، و مدخل‌های Info برای binutils و ld.

حق نشر © 1991-2025 Free Software Foundation, Inc.

اجازهٔ کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ متأخرتر منتشرشده توسط بنیاد نرم‌افزارهای آزاد اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متن‌های روی جلد و بدون متن‌های پشت جلد. یک نسخه از این مجوز در بخشی تحت عنوان «GNU Free Documentation License» گنجانده شده است.

2026-01-23 binutils-2.45.1