| AS(1) | GNU Development Tools | AS(1) |
نام (NAME)
as - اسمبلر چندسکویی گنو
خلاصه دستور (SYNOPSIS)
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 ...]
مقصد (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].PP
گزینههای
مقصد 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]
گزینههای
مقصد 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)" برنامه
as گنو در
واقع
خانوادهای
از
اسمبلرها
است. اگر از
اسمبلر گنو
در یک
معماری
استفاده
میکنید (یا
قبلاً
استفاده
کردهاید)،
هنگام
استفاده از
آن در
معماری
دیگر باید
با محیطی
کاملاً
مشابه
روبرو شوید.
هر نسخه
اشتراکات
فراوانی با
نسخههای
دیگر دارد،
از جمله
قالبهای
فایل شیء،
بیشتر
دستورالعملهای
اسمبلر (که
اغلب pseudo-ops
نامیده
میشوند) و
نحو
اسمبلر.
هدف اصلی as اسمبل کردن خروجی کامپایلر سی گنو "gcc" برای استفاده توسط پیونددهنده "ld" است. با این حال، ما تلاش کردهایم تا as بتواند هر آنچه را که اسمبلرهای دیگر برای همان ماشین اسمبل میکنند، بهدرستی اسمبل کند. هرگونه استثنا بهطور صریح مستند شده است. این بدان معنا نیست که as همیشه از همان نحو اسمبلر دیگر برای همان معماری استفاده میکند؛ برای مثال، ما از چندین نسخه ناسازگار از نحو زبان اسمبلی 680x0 آگاه هستیم.
هر بار که as را اجرا میکنید، دقیقاً یک برنامه مبدأ را اسمبل میکند. برنامه مبدأ از یک یا چند فایل تشکیل شده است. (ورودی استاندارد نیز یک فایل محسوب میشود.)
شما به as یک خط فرمان حاوی صفر یا چند نام فایل ورودی میدهید. فایلهای ورودی خوانده میشوند (از نام فایل سمت چپ به راست). هر آرگومان خط فرمان (در هر موقعیتی) که معنای خاصی نداشته باشد، به عنوان نام فایل ورودی در نظر گرفته میشود.
اگر هیچ نام فایلی به as ندهید، تلاش میکند یک فایل ورودی را از ورودی استاندارد as (که معمولاً ترمینال شما است) بخواند. ممکن است مجبور شوید کلیدهای ctl-D را بفشارید تا به as اعلام کنید برنامه دیگری برای اسمبل کردن وجود ندارد.
اگر نیاز دارید صراحتاً فایل ورودی استاندارد را در خط فرمان خود مشخص کنید، از -- استفاده نمایید.
اگر مبدأ خالی باشد، as یک فایل شیء کوچک و خالی تولید میکند.
برنامه as ممکن است پیامهای هشدار و خطا را در فایل خطای استاندارد (معمولاً ترمینال شما) بنویسد. زمانی که یک کامپایلر as را بهطور خودکار اجرا میکند، این اتفاق نباید رخ دهد. هشدارها فرضیاتی را گزارش میدهند تا as بتواند به اسمبل کردن برنامهای ناقص ادامه دهد؛ خطاها مشکلات وخیمی را گزارش میکنند که فرایند اسمبل را متوقف میسازد.
اگر as را از طریق کامپایلر سی گنو فراخوانی میکنید، میتوانید از گزینه -Wa برای ارسال آرگومانها به اسمبلر استفاده کنید. آرگومانهای اسمبلر باید با کاما از یکدیگر (و از -Wa) جدا شوند. برای مثال:
gcc -c -g -O -Wa,-alh,-L file.c
این دستور دو گزینه را به اسمبلر ارسال میکند: -alh (تولید یک فهرست در خروجی استاندارد به همراه کد سطحبالا و کد مبدأ اسمبلی) و -L (نگهداشتن نمادهای محلی در جدول نمادها).
معمولاً نیازی به استفاده از این سازوکار -Wa ندارید، چرا که بسیاری از گزینههای خط فرمان کامپایلر بهطور خودکار توسط کامپایلر به اسمبلر منتقل میشوند. (میتوانید گرداننده کامپایلر گنو را با گزینه -v اجرا کنید تا دقیقاً ببینید چه گزینههایی را به هر گام کامپایل، از جمله اسمبلر، ارسال میکند.)
گزینهها (OPTIONS)
- @file
- خواندن
گزینههای
خط فرمان از
file.
گزینههای
خواندهشده
به جای
گزینه اصلی
@file درج
میشوند.
اگر file وجود
نداشته
باشد یا
خوانده
نشود، با
گزینه
بهصورت
لغوی
(تحتاللفظی)
رفتار شده و
حذف نخواهد
شد.
گزینهها در file با فاصلههای خالی (whitespace) از یکدیگر جدا میشوند. یک نویسه فاصله خالی میتواند با قرار گرفتن کل گزینه در گیومه تکی یا دوتایی، درون آن گنجانده شود. هر نویسهای (از جمله بکاسلش) میتواند با قرار دادن یک بکاسلش قبل از آن درج گردد. فایل file خود میتواند حاوی گزینههای اضافی @file باشد؛ اینگونه گزینهها بهصورت بازگشتی پردازش خواهند شد.
- -a[cdghilmns]
- فعال کردن فهرستگیری (listing)، به روشهای گوناگون:
- -ac
- صرفنظر کردن از شرطیهای نادرست
- -ad
- صرفنظر کردن از دستورالعملهای اشکالزدایی
- -ag
- شامل اطلاعات عمومی، مانند نسخه as و گزینههای فرستادهشده
- -ah
- شامل کد مبدأ سطحبالا
- -al
- شامل کد اسمبلی
- -ali
- شامل کد اسمبلی همراه با ginsn
- -am
- شامل بسط ماکروها
- -an
- صرفنظر کردن از پردازش فرمها
- -as
- شامل نمادها
- =file
- تعیین نام فایل فهرستگیری
میتوانید این گزینهها را ترکیب کنید؛ برای نمونه، از -aln برای فهرستگیری اسمبلی بدون پردازش فرمها استفاده کنید. گزینه =file در صورت استفاده، باید آخرین گزینه باشد. گزینه -a به تنهایی، بهطور پیشفرض معادل -ahls است.
- --alternate
- شروع در حالت ماکروی جایگزین (alternate macro mode).
- --compress-debug-sections
- فشردهسازی بخشهای اشکالزدایی DWARF با استفاده از zlib و SHF_COMPRESSED از ELF ABI. فایل شیء حاصل ممکن است با پیونددهندهها و ابزارهای فایل شیء قدیمیتر سازگار نباشد. توجه داشته باشید اگر فشردهسازی باعث بزرگتر شدن یک بخش معین شود، آن بخش فشرده نخواهد شد.
- --compress-debug-sections=none
- --compress-debug-sections=zlib
- --compress-debug-sections=zlib-gnu
- --compress-debug-sections=zlib-gabi
- --compress-debug-sections=zstd
- این گزینهها چگونگی فشردهسازی بخشهای اشکالزدایی 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 فشرده میکند. توجه - اگر فشردهسازی در عمل باعث بزرگتر شدن یک بخش شود، آن بخش فشرده نشده و تغییر نام نیز نخواهد یافت.
- --nocompress-debug-sections
- بخشهای اشکالزدایی DWARF را فشرده نمیکند. این حالت معمولاً برای همه هدفها بهجز x86/x86_64 پیشفرض است، اما میتوان از گزینهای در زمان پیکربندی برای لغو این مقدار پیشفرض استفاده کرد.
- -D
- در صورت پشتیبانی، اشکالزدایی را در بخشهای پسین (backends) خاص هدف فعال میکند. در غیر این صورت نادیده گرفته میشود. حتی در صورت نادیده گرفته شدن، این گزینه برای سازگاری اسکریپتها با فراخوانیهای سایر اسمبلرها پذیرفته میشود.
- --debug-prefix-map old=new
- هنگام اسمبل کردن فایلها در دایرکتوری old، اطلاعات اشکالزدایی را بهگونهای ثبت میکند که گویی در دایرکتوری new قرار دارند.
- --defsym sym=value
- پیش از اسمبل کردن فایل ورودی، نماد sym را با مقدار value تعریف میکند. مقدار value باید یک مقدار ثابت عدد صحیح باشد. همانند زبان C، یک پیشوند 0x نشاندهنده مقدار هگزادسیمال، و یک پیشوند 0 نشاندهنده مقدار اکتال (مبنای هشت) است. مقدار نماد میتواند درون فایل مبدأ از طریق استفاده از شبهدستور ".set" بازنویسی شود.
- --dump-config
- چگونگی پیکربندی اسمبلر را نمایش داده و سپس خارج میشود.
- --elf-stt-common=no
- --elf-stt-common=yes
- این گزینهها کنترل میکنند که آیا اسمبلر ELF باید نمادهای عمومی (common symbols) را با نوع "STT_COMMON" تولید کند یا خیر. مقدار پیشفرض را میتوان از طریق گزینه پیکربندی --enable-elf-stt-common تنظیم کرد.
- --emit-local-absolute
- حتی نمادهای مطلق (محلی) از پیش تعریفشده را نیز به جدول نمادهای خروجی ارسال میکند. توجه داشته باشید که این گزینه دقیقاً معکوس --strip-local-absolute نیست.
- --emulation=name
- اگر اسمبلر برای پشتیبانی از چند پیکربندی هدف مختلف پیکربندی شده باشد، میتوان از این گزینه برای انتخاب حالت مورد نظر استفاده کرد.
- -f
- «سریع»---نادیده گرفتن پیشپردازش فاصلههای خالی و توضیحات (با این فرض که مبدأ خروجی کامپایلر است).
- -g
- تولید اطلاعات اشکالزدایی برای هر خط از کد منبع اسمبلر با استفاده از قالب اشکالزدایی ترجیحدادهشده توسط هدف. این مورد در حال حاضر به معنای STABS، ECOFF یا DWARF2 است. هنگامی که قالب اشکالزدایی DWARF باشد، بخشهای ".debug_info" و ".debug_line" تنها زمانی منتشر میشوند که فایل اسمبلی خودش آن را تولید نکرده باشد.
- --gstabs
- تولید اطلاعات اشکالزدایی stabs برای هر خط اسمبلر. در صورتی که اشکالزدا بتواند آن را مدیریت کند، این امر ممکن است به اشکالزدایی کد اسمبلر کمک کند.
- --gstabs+
- تولید اطلاعات اشکالزدایی stabs برای هر خط اسمبلر، همراه با افزونههای GNU که احتمالاً تنها gdb میتواند آنها را مدیریت کند، و ممکن است باعث خرابی سایر اشکالزداها یا خودداری آنها از خواندن برنامه شما شود. این گزینه ممکن است به اشکالزدایی کد اسمبلر کمک کند. در حال حاضر تنها افزونهٔ GNU، مکان دایرکتوری کاری فعلی در زمان اسمبل است.
- --gdwarf-2
- تولید اطلاعات اشکالزدایی DWARF2 برای هر خط اسمبلر. در صورتی که اشکالزدا بتواند آن را پردازش کند، ممکن است به اشکالزدایی کد اسمبلر کمک کند. توجه---این گزینه تنها توسط برخی از هدفها پشتیبانی میشود، نه همه آنها.
- --gdwarf-3
- این گزینه مشابه گزینه --gdwarf-2 است، با این تفاوت که امکان تولید اطلاعات اشکالزدایی بیشتر مطابق با نگارش ۳ مشخصات DWARF را فراهم میکند. توجه - فعالسازی این گزینه تولید هیچگونه اطلاعات اضافی را تضمین نمیکند؛ این انتخاب برای هر هدف بهطور جداگانه انجام میشود.
- --gdwarf-4
- این گزینه مشابه گزینه --gdwarf-2 است، با این تفاوت که امکان تولید اطلاعات اشکالزدایی بیشتر مطابق با نگارش ۴ مشخصات DWARF را فراهم میکند. توجه - فعالسازی این گزینه تولید هیچگونه اطلاعات اضافی را تضمین نمیکند؛ این انتخاب برای هر هدف بهطور جداگانه انجام میشود.
- --gdwarf-5
- این گزینه مشابه گزینه --gdwarf-2 است، با این تفاوت که امکان تولید اطلاعات اشکالزدایی بیشتر مطابق با نگارش ۵ مشخصات DWARF را فراهم میکند. توجه - فعالسازی این گزینه تولید هیچگونه اطلاعات اضافی را تضمین نمیکند؛ این انتخاب برای هر هدف بهطور جداگانه انجام میشود.
- --gdwarf-sections
- بهجای ایجاد یک بخش .debug_line، مجموعهای از بخشهای .debug_line.foo ایجاد میشود که در آن foo نام بخش کد مربوطه است. برای مثال، بخش کدی با نام .text.func اطلاعات شماره خط dwarf خود را در بخشی به نام .debug_line.text.func قرار خواهد داد. اگر بخش کد صرفاً .text نامیده شده باشد، بخش خطوط اشکالزدایی همچنان فقط به نام .debug_line و بدون هیچ پسوندی نامگذاری میشود.
- --gdwarf-cie-version=version
- کنترل میکند که کدام نسخه از ورودیهای اطلاعات مشترک DWARF (CIEها) تولید شوند. هنگامی که این پرچم مشخص نشود، پیشفرض نسخه ۱ است، اگرچه برخی از هدفها میتوانند این پیشفرض را تغییر دهند. سایر مقادیر مجاز برای version برابر ۳ یا ۴ هستند.
- --generate-missing-build-notes=yes
- --generate-missing-build-notes=no
- این گزینهها کنترل میکنند که آیا اسمبلر ELF در صورت عدم وجود یادداشتهای ویژگی ساخت GNU در سورسهای ورودی، باید آنها را تولید کند یا خیر. حالت پیشفرض میتواند توسط گزینه پیکربندی --enable-generate-build-notes کنترل شود.
- --gsframe
- --gsframe
- --gsframe=no
- --gsframe=yes
- بخش .sframe را از دستورالعملهای CFI ایجاد میکند. گزینه صریح --gsframe=yes رفتاری مشابه با --gsframe دارد. تولید آن میتواند با --gsframe=no متوقف شود.
- --hash-size N
- نادیده گرفته میشود. برای سازگاری خط فرمان با سایر اسمبلرها پشتیبانی میشود.
- --help
- چاپ خلاصهای از گزینههای خط فرمان و خروج.
- --target-help
- چاپ خلاصهای از تمام گزینههای مختص هدف و خروج.
- --info
- پیامهای اطلاعاتی مهار نشوند.
- --no-info
- مهار پیامهای اطلاعاتی.
- -I dir
- افزودن دایرکتوری dir به فهرست جستجو برای دستورالعملهای ".include".
- -J
- درباره سرریز علامتدار هشدار داده نشود.
- -K
- صدور هشدار در هنگامی که جدولهای تفاضل برای جابهجاییهای بزرگ تغییر مییابند.
- -L
- --keep-locals
- نگهداری نمادهای محلی (در جدول نمادها). این نمادها با پیشوندهای برچسب محلی مختص به سیستم آغاز میشوند؛ معمولاً .L برای سیستمهای ELF یا L برای سیستمهای سنتی a.out.
- --listing-lhs-width=number
- تنظیم حداکثر عرض (بر حسب کلمه) ستون دادههای خروجی برای یک فهرستبندی اسمبلر روی number.
- --listing-lhs-width2=number
- تنظیم حداکثر عرض (بر حسب کلمه) ستون دادههای خروجی برای خطوط ادامهدار در یک فهرستبندی اسمبلر روی number.
- --listing-rhs-width=number
- تنظیم حداکثر عرض یک خط منبع ورودی، آنگونه که در فهرستبندی نمایش داده میشود، روی number بایت.
- --listing-cont-lines=number
- تنظیم حداکثر تعداد خطوط چاپشده در یک فهرستبندی برای یک خط ورودی واحد روی number + 1.
- --multibyte-handling=allow
- --multibyte-handling=warn
- --multibyte-handling=warn-sym-only
- --multibyte-handling=warn_sym_only
- نحوه مدیریت نویسههای چندبایتی در ورودی توسط اسمبلر را کنترل میکند. حالت پیشفرض (که میتواند با استفاده از آرگومان allow بازگردانی شود) این است که چنین نویسههایی بدون اشکال مجاز شمرده شوند. استفاده از آرگومان warn باعث میشود که اسمبلر در صورت مواجهه با هر نویسه چندبایتی، یک پیام هشدار صادر کند. استفاده از آرگومان warn-sym-only تنها هنگامی باعث ایجاد هشدار میشود که نمادی با نامی حاوی نویسههای چندبایتی تعریف شده باشد. (ارجاع به نمادهای تعریفنشده هشداری ایجاد نمیکند).
- --no-pad-sections
- اسمبلر را از پر کردن (padding) انتهای بخشهای خروجی تا همترازی آن بخش بازمیدارد. حالت پیشفرض پر کردن بخشها است، اما این کار میتواند فضایی را که ممکن است در هدفهای با محدودیت شدید حافظه نیاز باشد، هدر دهد.
- -o objfile
- نامگذاری فایل شیء خروجی از as به نام objfile.
- -R
- ادغام بخش داده در بخش متن/کد.
- --reduce-memory-overheads
- نادیده گرفته میشود. جهت سازگاری با ابزارهایی پشتیبانی میشود که گزینه یکسانی را هم به اسمبلر و هم به پیونددهنده ارسال میکنند.
- --scfi=experimental
- این گزینه
مشخص
میکند که
آیا اسمبلر
باید CFI را
برای
ورودیهای
دستنویس
ترکیب (synthesize)
کند یا خیر.
اگر ورودی
از قبل شامل
دستورالعملهای
CFI قابل
ترکیب
باشد،
اسمبلر
آنها را
نادیده
گرفته و یک
هشدار صادر
میکند.
توجه داشته
باشید که
"--scfi=experimental"
برای کدهای
تولیدشده
توسط
کامپایلر،
از جمله
اسمبلی
درونخطی،
در نظر
گرفته نشده
است. این
پشتیبانی
آزمایشی
همچنان در
حال توسعه
است. فقط System V AMD64 ABI
پشتیبانی
میشود.
هر تابع ورودی در اسمبلی باید با دستورالعمل ".type" آغاز شود و در حالت ایدهآل باید با دستورالعمل ".size" خاتمه یابد. هنگام استفاده از SCFI، هر دستورالعمل ".type" باعث میشود GAS یک FDE جدید (معروف به Function Descriptor Entry) را آغاز کند. این بدان معناست که با هر دستورالعمل ".type"، بلوک قبلی از دستورات (در صورت وجود) به عنوان یک FDE مجزا نهایی میشود.
- --sectname-subst
- رعایت توالیهای جایگزینی در نام بخشها.
- --size-check=error
- --size-check=warning
- صدور خطا یا هشدار برای دستورالعمل نامعتبر ELF .size.
- --statistics
- چاپ حداکثر فضای استفادهشده (بر حسب بایت) و کل زمان صرفشده (بر حسب ثانیه) توسط اسمبل.
- --strip-local-absolute
- حذف نمادهای محلی مطلق از جدول نمادهای خروجی.
- -v
- --verbose
- چاپ نسخه as..IP --version 4
- -version
- چاپ نسخهٔ as و خروج.
- -W
- --no-warn
- جلوگیری از نمایش پیامهای هشدار.
- --warn
- پیامهای هشدار را نادیده نمیگیرد و با آنها مانند خطا برخورد نمیکند.
- --fatal-warnings
- برخورد با هشدارها به عنوان خطا.
- -w
- نادیده گرفته میشود.
- -x
- نادیده گرفته میشود.
- -Z
- تولید فایل شیء حتی پس از بروز خطاها.
- -- | files ...
- ورودی استاندارد، یا فایلهای منبع برای اسمبل کردن.
گزینههای زیر هنگامی در دسترس هستند که as برای حالت ۶۴ بیتی معماری ARM (AArch64) پیکربندی شده باشد.
- -EB
- این گزینه مشخص میکند که خروجی تولید شده توسط اسمبلر باید به عنوان کدگذاریشده برای یک پردازندهٔ big-endian علامتگذاری شود.
- -EL
- این گزینه مشخص میکند که خروجی تولید شده توسط اسمبلر باید به عنوان کدگذاریشده برای یک پردازندهٔ little-endian علامتگذاری شود.
- -mabi=abi
- مشخص میکند که کد منبع از کدام ABI استفاده میکند. آرگومانهای شناختهشده عبارتند از: "ilp32" و "lp64"، که به ترتیب قالب فایل شیء تولیدی را به صورت ELF32 و ELF64 تعیین میکنند. مقدار پیشفرض "lp64" است.
- -mcpu=processor[+extension...]
- این گزینه
پردازندهٔ
هدف را مشخص
میکند. اگر
تلاشی برای
اسمبل کردن
دستورالعملی
صورت گیرد
که روی
پردازندهٔ
هدف اجرا
نخواهد شد،
اسمبلر یک
پیام خطا
صادر خواهد
کرد.
نامهای
پردازندهٔ
زیر
شناختهشده
هستند:
"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) افزونههای گوناگونی را که پردازنده را گسترش میدهند، بپذیرد یا محدود کند.
اگر برخی پیادهسازیهای یک پردازندهٔ خاص بتوانند افزونهای داشته باشند، آن افزونهها به طور خودکار فعال میشوند. در نتیجه، معمولاً نیازی به مشخص کردن هیچ افزونهٔ اضافی نخواهید داشت.
- -march=architecture[+extension...]
- این گزینه
معماری هدف
را مشخص
میکند. اگر
تلاشی برای
اسمبل کردن
دستورالعملی
صورت گیرد
که روی
معماری هدف
اجرا
نخواهد شد،
اسمبلر یک
پیام خطا
صادر خواهد
کرد.
نامهای
معماری زیر
شناختهشده
هستند:
"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، افزونهها همیشه بهطور پیشفرض فعال نیستند.
- -mverbose-error
- این گزینه پیامهای خطای پرگو (verbose) را برای gas معماری AArch64 فعال میکند. این گزینه بهطور پیشفرض فعال است.
- -mno-verbose-error
- این گزینه پیامهای خطای پرگو را در gas معماری AArch64 غیرفعال میکند.
- -menable-sysreg-checking
- این گزینه پیامهای خطایی را فعال میکند که در صورت تلاش برای اسمبل کردن دسترسی به ثبات سیستمی که روی معماری هدف اجرا نمیشود، صادر میگردند.
گزینههای زیر هنگامی در دسترس هستند که as برای پردازندهٔ Alpha پیکربندی شده باشد.
- -mcpu
- این گزینه
پردازندهٔ
هدف را مشخص
میکند. اگر
تلاشی برای
اسمبل کردن
دستورالعملی
صورت گیرد
که روی
پردازندهٔ
هدف اجرا
نخواهد شد،
اسمبلر
ممکن است
دستورالعمل
را به عنوان
یک ماکرو
بسط دهد یا
یک پیام خطا
صادر کند.
این گزینه
معادل
دستورالعمل
راهنمای
".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") این کار را نمیکنند.
- -mdebug
- -no-mdebug
- تولید کپسولهسازی ".mdebug" را برای راهنماهای stabs و توصیفکنندههای رویه فعال یا غیرفعال میکند. حالت پیشفرض، فعالسازی خودکار ".mdebug" به محض مشاهدهٔ نخستین راهنمای stabs است.
- -relax
- این گزینه اجبار میکند که همهٔ بازنشانیها (relocations) به جای صرفهجویی در فضا و حلوفصل برخی از آنها در زمان اسمبل، در فایل شیء قرار گیرند. توجه داشته باشید که این گزینه همهٔ محاسبات نمادها را به فایل شیء منتقل نمیکند، زیرا همهٔ محاسبات نماد قابل بازنمایی نیستند. با این حال، این گزینه همچنان میتواند در کاربردهای خاص مفید باشد.
- -replace
- -noreplace
- بهینهسازی فراخوانیهای رویه را، چه در زمان اسمبل و چه در زمان پیوند، فعال یا غیرفعال میکند. این گزینهها فقط برای مقاصد VMS در دسترس هستند و "-replace" حالت پیشفرض است. بخش 1.4.1 از راهنمای OpenVMS Linker Utility Manual را ببینید.
- -g
- این گزینه زمانی استفاده میشود که کامپایلر اطلاعات اشکالزدایی را تولید میکند. هنگامی که gcc از mips-tfile برای تولید اطلاعات اشکالزدایی برای ECOFF استفاده میکند، برچسبهای محلی باید به فایل شیء منتقل شوند. در غیر این صورت این گزینه هیچ اثری ندارد..IP -Gsize 4 یک نماد عمومی (common symbol) محلی بزرگتر از size در ".bss" قرار میگیرد، در حالی که نمادهای کوچکتر در ".sbss" قرار داده میشوند.
- -F
- -32addr
- این گزینهها برای سازگاری با نسخههای پیشین نادیده گرفته میشوند.
گزینههای زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ ARC پیکربندی شده باشد.
- -mcpu=cpu
- این گزینه گونهٔ پردازندهٔ هسته (core) را انتخاب میکند.
- -EB | -EL
- خروجی را به صورت big-endian (-EB) یا little-endian (-EL) انتخاب میکند.
- -mcode-density
- دستورالعملهای افزونهٔ Code Density را فعال میکند.
گزینههای زیر هنگامی در دسترس هستند که as برای خانوادهٔ پردازندههای ARM پیکربندی شده باشد.
- -mcpu=processor[+extension...]
- مشخص میکند کدام گونه از پردازندهٔ ARM مقصد است.
- -march=architecture[+extension...]
- مشخص میکند کدام گونه از معماری ARM توسط مقصد استفاده میشود.
- -mfpu=floating-point-format
- انتخاب میکند که کدام معماری ممیز شناور مقصد است.
- -mfloat-abi=abi
- انتخاب میکند که کدام ABI ممیز شناور در حال استفاده است.
- -mthumb
- رمزگشایی دستورالعملهای صرفاً Thumb را فعال میکند.
- -mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
- انتخاب میکند کدام قرارداد فراخوانی رویه (calling convention) در حال استفاده است.
- -EB | -EL
- خروجی را به صورت big-endian (-EB) یا little-endian (-EL) انتخاب میکند.
- -mthumb-interwork
- مشخص میکند که کد با در نظر گرفتن همکاری درونی (interworking) بین کدهای Thumb و ARM تولید شده است.
- -mccs
- حالت سازگاری نحو اسمبلی CodeComposer Studio را فعال میکند.
- -k
- مشخص میکند که کد PIC تولید شده است.
گزینههای زیر هنگامی در دسترس هستند که as برای خانوادهٔ پردازندههای Blackfin پیکربندی شده باشد.
- -mcpu=processor[-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
- -mnopic
- غیرفعال کردن -mfdpic.
گزینههای زیر هنگامی در دسترس هستند که as برای خانوادهٔ پردازندههای BPF هستهٔ لینوکس پیکربندی شده باشد.
@chapter BPF Dependent Features
گزینههای BPF (BPF Options)
- -EB
- این گزینه مشخص میکند که اسمبلر باید eBPF از نوع big-endian تولید کند.
- -EL
- این گزینه مشخص میکند که اسمبلر باید eBPF از نوع little-endian تولید کند.
- -mdialect=dialect
- این گزینه گویش (dialect) زبان اسمبلی را برای شناسایی در هنگام اسمبل کردن مشخص میکند. اسمبلر از normal و pseudoc پشتیبانی میکند.
- -misa-spec=spec
- این گزینه
نسخهٔ
مجموعه
دستورالعملهای
BPF را برای
استفاده در
هنگام
اسمبل کردن
مشخص
میکند.
نسخههای BPF ISA
پشتیبانیشده
عبارتند از
v1، v2، v3 و v4.
مقدار xbpf میتواند برای شناسایی دستورالعملهای اضافی که توسط GCC برای مقاصد آزمایشی استفاده میشوند مشخص شود. اما توجه داشته باشید که این مورد BPF معتبر نیست.
- -mno-relax
- این گزینه به اسمبلر میگوید که دستورالعملها را سادهسازی (relax) نکند.
توجه داشته باشید که اگر هیچ گزینهٔ endianness در خط فرمان مشخص نشده باشد، ترتیب بایتی میزبان (host endianness) استفاده میشود. برای مستندات گزینههای مختص CRIS، صفحات info را ببینید.
گزینههای زیر هنگامی در دسترس هستند که as برای خانوادهٔ پردازندههای C-SKY پیکربندی شده باشد.
- -march=archname
- اسمبل کردن برای معماری archname. گزینهٔ --help فهرست مقادیر معتبر برای archname را نمایش میدهد.
- -mcpu=cpuname
- اسمبل کردن برای معماری cpuname. گزینهٔ --help فهرست مقادیر معتبر برای cpuname را نمایش میدهد.
- -EL
- -mlittle-endian
- تولید خروجی little-endian.
- -EB
- -mbig-endian
- تولید خروجی big-endian.
- -fpic
- -pic
- تولید کد مستقل از موقعیت (position-independent code).
- -mljump
- -mno-ljump
- فعال/غیرفعال کردن تبدیل دستورالعملهای پرش کوتاه "jbf"، "jbt" و "jbr" به "jmpi". این گزینه فقط برای پردازندههای V2 است. این گزینه در مقصدهای CK801 و CK802 که از دستورالعمل "jmpi" پشتیبانی نمیکنند نادیده گرفته میشود، و بهطور پیشفرض برای سایر پردازندهها فعال است.
- -mbranch-stub
- -mno-branch-stub
- ارسال
بازنشانیهای
(relocations) "R_CKCORE_PCREL_IMM26BY2"
برای
دستورالعملهای
"bsr" به
پیونددهنده
(linker).
این گزینه تنها برای مقصدهای ELF سختافزار خام (bare-metal) از نوع C-SKY V2 در دسترس است، که در آنجا بهطور پیشفرض فعال است. نمیتوان از آن در کدهایی استفاده کرد که بهصورت پویا با کتابخانههای اشتراکی پیوند داده خواهند شد..IP -force2bsr 4
- -mforce2bsr
- -no-force2bsr
- -mno-force2bsr
- تبدیل دستورالعملهای "jbsr" به "bsr" را فعال/غیرفعال میکند. این گزینه برای هدفهای CK801/CK802 همواره فعال است (و -mno-force2bsr نادیده گرفته میشود). همچنین زمانی که -mbranch-stub برقرار باشد، همیشه فعال خواهد بود.
- -jsri2bsr
- -mjsri2bsr
- -no-jsri2bsr
- -mno-jsri2bsr
- تبدیل دستورالعملهای "jsri" به "bsr" را فعال/غیرفعال میکند. این گزینه بهطور پیشفرض فعال است.
- -mnolrw
- -mno-lrw
- تبدیل دستورالعملهای "lrw" به یک جفت "movih"/"ori" را فعال/غیرفعال میکند.
- -melrw
- -mno-elrw
- دستورالعملهای گسترشیافتهٔ "lrw" را فعال/غیرفعال میکند. این گزینه بهطور پیشفرض برای پردازندههای سری CK800 فعال است.
- -mlaf
- -mliterals-after-func
- -mno-laf
- -mno-literals-after-func
- قرار دادن مخازن لیترال (literal pools) پس از هر تابع را فعال/غیرفعال میکند.
- -mlabr
- -mliterals-after-br
- -mno-labr
- -mnoliterals-after-br
- قرار دادن مخازن لیترال (literal pools) پس از پرشهای نامشروط را فعال/غیرفعال میکند. این گزینه بهطور پیشفرض فعال است.
- -mistack
- -mno-istack
- دستورالعملهای پشتهٔ وقفه را فعال/غیرفعال میکند. این گزینه بهطور پیشفرض روی پردازندههای CK801، CK802 و CK802 فعال است.
گزینههای زیر صریحاً دستورالعملهای اختیاری معینی را فعال میکنند. این ویژگیها همچنین بهصورت ضمنی با استفاده از "-mcpu=" برای تعیین پردازندهای که از آن پشتیبانی میکند، فعال میشوند.
- -mhard-float
- دستورالعملهای ممیز شناور سختافزاری را فعال میکند.
- -mmp
- دستورالعملهای چندپردازندهای را فعال میکند.
- -mcp
- دستورالعملهای کمکپردازنده را فعال میکند.
- -mcache
- دستورالعمل پیشواکشی کَش را فعال میکند.
- -msecurity
- دستورالعملهای امنیتی C-SKY را فعال میکند.
- -mtrust
- دستورالعملهای تراست (trust) مربوط به C-SKY را فعال میکند.
- -mdsp
- دستورالعملهای DSP را فعال میکند.
- -medsp
- دستورالعملهای پیشرفتهٔ DSP را فعال میکند.
- -mvdsp
- دستورالعملهای برداری DSP را فعال میکند.
گزینههای زیر زمانی در دسترس هستند که as برای یک پردازندهٔ Epiphany پیکربندی شده باشد.
- -mepiphany
- مشخص میکند که هر دو نوع دستورالعملهای ۳۲ و ۱۶ بیتی مجاز هستند. این رفتار پیشفرض است.
- -mepiphany16
- دستورالعملهای مجاز را فقط به مجموعهٔ ۱۶ بیتی محدود میکند.
گزینههای زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ H8/300 پیکربندی شده باشد. @chapter ویژگیهای وابسته به H8/300
گزینهها (Options)
نسخهٔ Renesas H8/300 از "as" یک گزینهٔ وابسته به ماشین دارد:
- -h-tick-hex
- علاوه بر شیوهٔ 0x00، از ثوابت هگزادسیمال به سبک H'00 نیز پشتیبانی میکند.
- -mach=name
- گونهٔ ماشین 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 بهعنوان سکوی هدف استفاده شود).
- -n
- بهطور پیشفرض، x86 GAS چندین دستور nop متوالی را که برای همترازی درون بخشهای کد استفاده میشوند، با دستورالعملهای چندبایتی nop مانند leal 0(%esi,1),%esi جایگزین میکند. این سوئیچ در صورتی که یک nop تکبایتی (0x90) صریحاً بهعنوان بایت پُرکننده برای همترازی مشخص شده باشد، این بهینهسازی را غیرفعال میکند.
- --divide
- روی سکوهای برگرفته از SVR4، نویسهٔ / بهعنوان نویسهٔ توضیح در نظر گرفته میشود، بدان معنا که نمیتوان از آن در عبارتها استفاده کرد. گزینهٔ --divide نویسهٔ / را به یک نویسهٔ معمولی تبدیل میکند. این کار / را در ابتدای خطی که توضیح را آغاز میکند غیرفعال نمیکند و بر استفاده از # برای شروع توضیح نیز تأثیری نمیگذارد.
- -march=CPU[+EXTENSION...]
- این گزینه
پردازندهٔ
هدف را مشخص
میکند. در
صورتی که
تلاشی برای
اسمبل کردن
دستورالعملی
که روی
پردازندهٔ
هدف اجرا
نمیشود
صورت گیرد،
اسمبلر یک
پیام خطا
صادر خواهد
کرد.
نامهای
پردازندههای
زیر
شناختهشده
هستند:
"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".
علاوه بر مجموعه دستورالعملهای پایه، میتوان به اسمبلر اعلام کرد که نمادهای یادافزای (mnemonics) مربوط به افزونههای گوناگون را بپذیرد. برای نمونه، "-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>" یک محدودیت طول بردار اعمال میکنند؛ یعنی با وجود اینکه این گزینهها در حالت عادی گزینههای «فعالکننده» هستند، استفاده از این پسوندها تمامی دستورالعملهای دارای عملوندهای ثبات برداری یا ثبات ماسک عریضتر را غیرفعال خواهد کرد.
هنگامی که رهنمود ".arch" همراه با -march استفاده شود، رهنمود ".arch" اولویت خواهد داشت..IP -mtune=CPU 4 این گزینه پردازندهای را مشخص میکند که کد باید برای آن بهینهسازی شود. هنگامی که همراه با گزینهٔ -march استفاده شود، تنها دستورالعملهای پردازندهٔ مشخصشده توسط گزینهٔ -march تولید خواهند شد.
مقادیر معتبر CPU با فهرست پردازندههای -march=CPU یکسان است.
- -moperand-check=none
- -moperand-check=warning
- -moperand-check=error
- این گزینهها تعیین میکنند که آیا اسمبلر باید عملوندهای مشخصی از دستورالعمل یا ترکیبهای عملوند را بررسی کند یا خیر. یک نمونه، دستورالعملهایی هستند که در آنها اندازهٔ عملوند از خود عملوندها قابل استنتاج نیست و همچنین از طریق پسوند دستورالعمل نیز مشخص نشده است. -moperand-check=none باعث میشود اسمبلر این بررسیها را انجام ندهد. -moperand-check=warning باعث میشود در صورت عدم قبولی در بررسیهای مربوطه، اسمبلر یک هشدار صادر کند که حالت پیشفرض است. -moperand-check=error باعث میشود در صورت عدم قبولی در بررسیهای مربوطه، اسمبلر یک خطا صادر کند.
- -msse2avx
- این گزینه مشخص میکند که اسمبلر باید دستورالعملهای SSE را با پیشوند VEX کدگذاری کند، که نیازمند در دسترس بودن AVX است. دستورالعملهای SSE که از GPRهای گسترشیافته استفاده میکنند با پیشوند EVEX کدگذاری خواهند شد، که نیازمند در دسترس بودن AVX512 یا AVX10 است.
- -muse-unaligned-vector-move
- این گزینه مشخص میکند که اسمبلر باید انتقال برداری همتراز (aligned) را به صورت انتقال برداری ناهمتراز (unaligned) کدگذاری کند.
- -msse-check=none
- -msse-check=warning
- -msse-check=error
- این گزینهها کنترل میکنند که آیا اسمبلر باید دستورالعملهای SSE را بررسی کند یا خیر. -msse-check=none باعث میشود اسمبلر دستورالعملهای SSE را بررسی نکند، که حالت پیشفرض است. -msse-check=warning باعث میشود اسمبلر برای هر دستورالعمل SSE یک هشدار صادر کند. -msse-check=error باعث میشود اسمبلر برای هر دستورالعمل SSE یک خطا صادر کند.
- -mavxscalar=128
- -mavxscalar=256
- این
گزینهها
چگونگی
کدگذاری
دستورالعملهای
اسکالر AVX
توسط
اسمبلر را
کنترل
میکنند.
-mavxscalar=128
دستورالعملهای
اسکالر AVX را
با طول
بردار ۱۲۸
بیتی
کدگذاری
میکند که
حالت
پیشفرض
است. -mavxscalar=256
دستورالعملهای
اسکالر AVX را
با طول
بردار ۲۵۶
بیتی
کدگذاری
خواهد کرد.
هشدار: از این گزینه برای کدهای محیط عملیاتی استفاده نکنید - به دلیل اشکالات سختافزاری پردازنده (CPU errata)، ممکن است کد حاصل بر روی برخی مدلها کار نکند.
- -mvexwig=0
- -mvexwig=1
- این
گزینهها
چگونگی
کدگذاری
دستورالعملهای
VEX از نوع
نادیدهگیرندهٔ
VEX.W
(کوتاهنوشت
WIG) توسط
اسمبلر را
کنترل
میکنند.
-mvexwig=0
دستورالعملهای
WIG VEX را با vex.w = 0
کدگذاری
میکند که
حالت
پیشفرض
است. -mvexwig=1
دستورالعملهای
WIG EVEX را با vex.w = 1
کدگذاری
خواهد کرد.
هشدار: از این گزینه برای کدهای محیط عملیاتی استفاده نکنید - به دلیل اشکالات سختافزاری پردازنده (CPU errata)، ممکن است کد حاصل بر روی برخی مدلها کار نکند.
- -mevexlig=128
- -mevexlig=256
- -mevexlig=512
- این گزینهها چگونگی کدگذاری دستورالعملهای EVEX نادیدهگیرندهٔ طول (LIG) را توسط اسمبلر کنترل میکنند. -mevexlig=128 دستورالعملهای LIG EVEX را با طول بردار ۱۲۸ بیتی کدگذاری میکند که حالت پیشفرض است. -mevexlig=256 و -mevexlig=512 دستورالعملهای LIG EVEX را به ترتیب با طول بردار ۲۵۶ بیتی و ۵۱۲ بیتی کدگذاری خواهند کرد.
- -mevexwig=0
- -mevexwig=1
- این گزینهها چگونگی کدگذاری دستورالعملهای EVEX نادیدهگیرندهٔ w (کوتاهنوشت WIG) توسط اسمبلر را کنترل میکنند. -mevexwig=0 دستورالعملهای WIG EVEX را با evex.w = 0 کدگذاری میکند که حالت پیشفرض است. -mevexwig=1 دستورالعملهای WIG EVEX را با evex.w = 1 کدگذاری خواهد کرد.
- -mmnemonic=att
- -mmnemonic=intel
- این گزینه نماد یادافزای دستورالعمل را برای تطبیق دستورالعملها مشخص میکند. دستورالعملهای راهنمای ".att_mnemonic" و ".intel_mnemonic" اولویت خواهند داشت.
- -msyntax=att
- -msyntax=intel
- این گزینه نحو (syntax) دستورالعمل را هنگام پردازش دستورالعملها مشخص میکند. دستورالعملهای راهنمای ".att_syntax" و ".intel_syntax" اولویت خواهند داشت.
- -mnaked-reg
- این گزینه مشخص میکند که ثباتها نیازی به پیشوند % ندارند. دستورالعملهای راهنمای ".att_syntax" و ".intel_syntax" اولویت خواهند داشت.
- -madd-bnd-prefix
- این گزینه اسمبلر را وادار میکند تا پیشوند BND را به تمامی انشعابها اضافه کند، حتی اگر چنین پیشوندی صراحتاً در کد منبع مشخص نشده باشد.
- -mno-shared
- در مقصد ELF، اسمبلر معمولاً بازنشانیهای غیر PLT را در برابر مقاصد انشعاب سراسری غیرضعیفِ تعریفشده با نمایانی پیشفرض بهینهسازی و حذف میکند. گزینهٔ -mshared به اسمبلر میگوید کدی تولید کند که ممکن است وارد یک کتابخانهٔ اشتراکی شود؛ جایی که تمام مقاصد انشعاب سراسری غیرضعیف با نمایانی پیشفرض میتوانند قبضهپذیر باشند. کد حاصل اندکی حجیمتر خواهد بود. این گزینه فقط بر مدیریت دستورالعملهای انشعاب اثر میگذارد.
- -mbig-obj
- در مقصد PE/COFF، این گزینه استفاده از قالب فایل شیء بزرگ (big object) را اجباری میکند، که امکان استفاده از بیش از ۳۲۷۶۸ بخش را فراهم میسازد.
- -momit-lock-prefix=no
- -momit-lock-prefix=yes
- این گزینهها چگونگی کدگذاری پیشوند lock توسط اسمبلر را کنترل میکنند. این گزینه به عنوان راهکاری موقت برای پردازندههایی در نظر گرفته شده است که با پیشوند lock دچار اشکال میشوند. این گزینه را تنها میتوان با اطمینان در رایانههای تکهستهای و تکرشتهای استفاده کرد. -momit-lock-prefix=yes تمامی پیشوندهای lock را حذف خواهد کرد. -momit-lock-prefix=no پیشوند lock را طبق روال معمول کدگذاری میکند، که حالت پیشفرض است.
- -mfence-as-lock-add=no
- -mfence-as-lock-add=yes
- این گزینهها چگونگی کدگذاری 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 را طبق روال معمول کدگذاری خواهد کرد، که حالت پیشفرض است.
- -mrelax-relocations=no
- -mrelax-relocations=yes
- این گزینهها کنترل میکنند که آیا اسمبلر باید بازنشانیهای تسهیلشده (relax relocations)، یعنی R_386_GOT32X در حالت ۳۲ بیتی، یا R_X86_64_GOTPCRELX و R_X86_64_REX_GOTPCRELX در حالت ۶۴ بیتی را تولید کند یا خیر. -mrelax-relocations=yes بازنشانیهای تسهیلشده را تولید خواهد کرد. -mrelax-relocations=no بازنشانیهای تسهیلشده را تولید نخواهد کرد. حالت پیشفرض را میتوان از طریق گزینهٔ پیکربندی --enable-x86-relax-relocations کنترل کرد.
- -mtls-check=no
- -mtls-check=yes
- این گزینهها کنترل میکنند که آیا اسمبلر بازنشانی tls را بررسی کند یا خیر. -mtls-check=yes بازنشانی tls را بررسی خواهد کرد. -mtls-check=no بازنشانی tls را بررسی نخواهد کرد. حالت پیشفرض را میتوان از طریق گزینهٔ پیکربندی --enable-x86-tls-check کنترل کرد.
- -malign-branch-boundary=NUM
- این گزینه چگونگی همتراز کردن انشعابها با پیشوندهای بخش یا NOP توسط اسمبلر را کنترل میکند. NUM باید توانی از ۲ باشد. این مقدار باید ۰ یا عددی نه کمتر از ۱۶ باشد. انشعابها در محدودهٔ مرز NUM بایتی همتراز خواهند شد. -malign-branch-boundary=0 که حالت پیشفرض است، انشعابها را همتراز نمیکند.
- -malign-branch=TYPE[+TYPE...]
- این گزینه انواع انشعابها را برای همترازی مشخص میکند. TYPE ترکیبی است از jcc که پرشهای شرطی را همتراز میکند، fused که پرشهای شرطی ادغامشده را همتراز میکند، jmp که پرشهای غیرشرطی را همتراز میکند، call که فراخوانیها را همتراز میکند، ret که بازگشتها را همتراز میکند، و indirect که پرشها و فراخوانیهای غیرمستقیم را همتراز میکند. حالت پیشفرض -malign-branch=jcc+fused+jmp است..IP -malign-branch-prefix-size=NUM 4 این گزینه حداکثر تعداد پیشوندهای یک دستورالعمل را برای تراز کردن انشعابها (branches) مشخص میکند. NUM باید بین 0 و 5 باشد. مقدار پیشفرض NUM برابر 5 است.
- -mbranches-within-32B-boundaries
- این گزینه پرشهای شرطی، پرشهای شرطی ادغامشده (fused) و پرشهای غیرشرطی را در مرز 32 بایتی با حداکثر 5 پیشوند سگمنت روی یک دستورالعمل تراز میکند. این گزینه معادل موارد زیر است: -malign-branch-boundary=32 -malign-branch=jcc+fused+jmp -malign-branch-prefix-size=5. حالت پیشفرض، انشعابها را تراز نمیکند.
- -mlfence-after-load=no
- -mlfence-after-load=yes
- این گزینهها کنترل میکنند که آیا اسمبلر پس از دستورالعملهای load باید lfence تولید کند یا خیر. -mlfence-after-load=yes دستور lfence را تولید خواهد کرد. -mlfence-after-load=no دستور lfence را تولید نمیکند، که حالت پیشفرض است.
- -mlfence-before-indirect-branch=none
- -mlfence-before-indirect-branch=all
- -mlfence-before-indirect-branch=register
- -mlfence-before-indirect-branch=memory
- این گزینهها کنترل میکنند که آیا اسمبلر باید پیش از دستورالعملهای انشعاب نزدیک غیرمستقیم (indirect near branch) دستور 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 پس از بارگذاری ثبات مقصد انشعاب تولید میشود.
- -mlfence-before-ret=none
- -mlfence-before-ret=shl
- -mlfence-before-ret=or
- -mlfence-before-ret=yes
- -mlfence-before-ret=not
- این گزینهها کنترل میکنند که آیا اسمبلر باید پیش از 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 تولید نمیکند، که حالت پیشفرض است.
- -mx86-used-note=no
- -mx86-used-note=yes
- این گزینهها کنترل میکنند که آیا اسمبلر باید یادداشتهای ویژگیهای گنو (GNU property notes) شامل GNU_PROPERTY_X86_ISA_1_USED و GNU_PROPERTY_X86_FEATURE_2_USED را تولید کند یا خیر. حالت پیشفرض را میتوان با گزینهٔ پیکربندی --enable-x86-used-note کنترل کرد.
- -mevexrcig=rne
- -mevexrcig=rd
- -mevexrcig=ru
- -mevexrcig=rz
- این گزینهها چگونگی کدگذاری دستورالعملهای EVEX فقط-SAE توسط اسمبلر را کنترل میکنند. -mevexrcig=rne بیتهای RC دستورالعمل EVEX را با 00 کدگذاری میکند، که حالت پیشفرض است. -mevexrcig=rd، -mevexrcig=ru و -mevexrcig=rz دستورالعملهای EVEX فقط-SAE را به ترتیب با بیتهای RC مقدار 01، 10 و 11 کدگذاری میکنند.
- -mamd64
- -mintel64
- این گزینه مشخص میکند که اسمبلر در حالت 64 بیتی فقط باید ISAهای AMD64 یا Intel64 را بپذیرد. حالت پیشفرض پذیرش ISAهای مشترک، فقط Intel64 و AMD64 است.
- -O0 | -O | -O1 | -O2 | -Os
- کدگذاری
دستورالعملها
را با حجم
دستور
کوچکتر
بهینهسازی
میکند. -O و
-O1
دستورالعملهای
بارگذاری
ثبات 64 بیتی
با عملوند
بیدرنگ 64
بیتی را
بهصورت
دستورالعملهای
بارگذاری
ثبات 32 بیتی
با
عملوندهای
بیدرنگ 31
بیتی یا 32
بیتی
کدگذاری
میکنند،
دستورالعملهای
پاکسازی
ثبات 64 بیتی
را با
دستورالعملهای
پاکسازی
ثبات 32 بیتی
کدگذاری
میکنند،
دستورالعملهای
پاکسازی
ثبات
برداری 256
بیتی/512 بیتی
VEX/EVEX را با
دستورالعملهای
پاکسازی
ثبات
برداری 128
بیتی VEX
کدگذاری
میکنند،
دستورالعملهای
بارگذاری/ذخیره
ثبات
برداری 128
بیتی/256 بیتی EVEX
را با
دستورالعملهای
بارگذاری/ذخیره
ثبات
برداری VEX
کدگذاری
میکنند، و
دستورالعملهای
منطقی
اعداد صحیح
بستهبندیشده
(packed integer logical) 128 بیتی/256
بیتی EVEX را با
دستورالعملهای
منطقی
اعداد صحیح
بستهبندیشده
128 بیتی/256 بیتی
VEX کدگذاری
میکنند.
-O2 شامل بهینهسازیهای -O1 به همراه کدگذاری دستورالعملهای پاکسازی ثبات برداری 256 بیتی/512 بیتی EVEX با دستورالعملهای پاکسازی ثبات برداری 128 بیتی EVEX است. در حالت 64 بیتی، در دستورالعملهای کدگذاریشدهٔ VEX با عملوندهای مبدأ جابهجاییپذیر (commutative)، اگر این کار امکان استفاده از قالب پیشوند 2 بایتی VEX را بهجای 3 بایتی فراهم کند، عملوندهای مبدأ آنها نیز جابهجا خواهند شد. شکلهای خاصی از AND و همچنین OR با عملوند (ثبات) یکسان که دو بار مشخص شده باشد نیز به TEST تغییر خواهند یافت.
-Os شامل بهینهسازی -O2 به همراه کدگذاری تستهای ثبات 16 بیتی، 32 بیتی و 64 بیتی با عملوند بیدرنگ بهصورت تست ثبات 8 بیتی با عملوند بیدرنگ است. -O0 این بهینهسازی را غیرفعال میکند.
گزینههای زیر زمانی در دسترس هستند که as برای سری Ubicom IP2K پیکربندی شده باشد.
- -mip2022ext
- مشخص میکند که دستورالعملهای توسعهیافتهٔ IP2022 مجاز هستند.
- -mip2022
- رفتار پیشفرض را بازیابی میکند، که دستورالعملهای مجاز را فقط به دستورالعملهای پایهٔ IP2022 محدود میکند.
گزینههای زیر زمانی در دسترس هستند که as برای پردازندههای Renesas M32C و M16C پیکربندی شده باشد.
- -m32c
- اسمبل کردن دستورالعملهای M32C.
- -m16c
- اسمبل کردن دستورالعملهای M16C (پیشفرض).
- -relax
- فعالسازی پشتیبانی از سادهسازیهای زمان پیوند (link-time relaxations).
- -h-tick-hex
- پشتیبانی از ثابتهای هگزادسیمال به سبک H'00 علاوه بر سبک 0x00.
گزینههای زیر زمانی در دسترس هستند که as برای سری Renesas M32R (پیشتر Mitsubishi M32R) پیکربندی شده باشد.
- --m32rx
- مشخص میکند که کدام پردازنده در خانوادهٔ M32R هدف است. پیشفرض معمولاً M32R است، اما این گزینه آن را به M32RX تغییر میدهد.
- --warn-explicit-parallel-conflicts or --Wp
- در هنگام مواجهه با ساختارهای موازی مشکوک، پیامهای هشدار تولید میکند.
- --no-warn-explicit-parallel-conflicts or --Wnp
- در هنگام مواجهه با ساختارهای موازی مشکوک، پیامهای هشدار تولید نمیکند.
گزینههای زیر زمانی در دسترس هستند که as برای سری Motorola 68000 پیکربندی شده باشد.
- -l
- کوتاه کردن ارجاعات به نمادهای تعریفنشده به یک کلمه بهجای دو کلمه.
- -m68000 | -m68008 | -m68010 | -m68020 | -m68030
- | -m68040 | -m68060 | -m68302 | -m68331 | -m68332
- | -m68333 | -m68340 | -mcpu32 | -m5200
- مشخص میکند که کدام پردازنده از خانوادهٔ 68000 هدف است. پیشفرض معمولاً 68020 است، اما این مورد در زمان پیکربندی قابل تغییر است.
- -m68881 | -m68882 | -mno-68881 | -mno-68882
- ماشین هدف دارای یک کمکپردازندهٔ ممیز شناور (floating-point coprocessor) هست (یا نیست). پیشفرض این است که برای 68020، 68030 و cpu32 یک کمکپردازنده فرض شود. اگرچه 68000 پایه با 68881 سازگار نیست، اما میتوان ترکیبی از این دو را مشخص کرد، زیرا شبیهسازی دستورالعملهای کمکپردازنده توسط پردازندهٔ اصلی امکانپذیر است.
- -m68851 | -mno-68851
- ماشین هدف دارای یک کمکپردازندهٔ واحد مدیریت حافظه (MMU) هست (یا نیست). پیشفرض این است که برای 68020 و بالاتر یک MMU در نظر گرفته شود.
برای جزئیات بیشتر دربارهٔ گزینههای ویژگیهای وابسته به ماشین PDP-11، به PDP-11-Options مراجعه کنید.
- -mpic | -mno-pic
- تولید کد مستقل از موقعیت (یا وابسته به موقعیت). پیشفرض -mpic است..IP -mall 4
- -mall-extensions
- تمام افزونههای مجموعه دستورالعمل را فعال میکند. این حالت پیشفرض است.
- -mno-extensions
- تمام افزونههای مجموعه دستورالعمل را غیرفعال میکند.
- -mextension | -mno-extension
- یک افزونه مشخص از مجموعه دستورالعمل را فعال (یا غیرفعال) میکند.
- -mcpu
- افزونههای مجموعه دستورالعمل پشتیبانیشده توسط یک CPU خاص را فعال کرده و تمام افزونههای دیگر را غیرفعال میکند.
- -mmachine
- افزونههای مجموعه دستورالعمل پشتیبانیشده توسط یک مدل ماشین خاص را فعال کرده و تمام افزونههای دیگر را غیرفعال میکند.
گزینههای زیر زمانی در دسترس هستند که as برای پردازنده picoJava پیکربندی شده باشد.
گزینههای زیر زمانی در دسترس هستند که as برای پردازنده PRU پیکربندی شده باشد.
- -mlink-relax
- فرض میکند که LD با بررسی ۱۶ بیت بالایی expression، دستورالعملهای LDI32 را بهینهسازی خواهد کرد. اگر همه آنها صفر باشند، LD دستورالعمل LDI32 را به یک دستورالعمل تک LDI کوتاه میکند. در این صورت، "as" برای عبارتهای تفاضلی (diff expressions)، بازنشانیهای DIFF را صادر خواهد کرد.
- -mno-link-relax
- فرض میکند که LD دستورالعملهای LDI32 را بهینهسازی نخواهد کرد. در نتیجه، بازنشانیهای DIFF صادر نخواهند شد.
- -mno-warn-regname-label
- اگر نام یک برچسب با نام یک ثبات مطابقت داشته باشد، هشدار نمیدهد. معمولاً برنامهنویسان اسمبلی مایلند این هشدار صادر شود. کامپایلرهای C ممکن است مایل به غیرفعال کردن آن باشند.
گزینههای زیر زمانی در دسترس هستند که as برای پردازنده MIPS پیکربندی شده باشد.
- -G num
- این گزینه بیشینه اندازه شیئی را تعیین میکند که میتواند بهطور ضمنی با ثبات "gp" مورد ارجاع قرار گیرد. این گزینه تنها برای مقصدهایی پذیرفته میشود که از قالب ECOFF استفاده میکنند، مانند یک DECstation تحت سیستمعامل Ultrix. مقدار پیشفرض ۸ است.
- -EB
- تولید خروجی با قالب “big endian”.
- -EL
- تولید خروجی با قالب “little endian”.
- -mips1
- -mips2
- -mips3
- -mips4
- -mips5
- -mips32
- -mips32r2
- -mips32r3
- -mips32r5
- -mips32r6
- -mips64
- -mips64r2
- -mips64r3
- -mips64r5
- -mips64r6
- تولید کد برای یک سطح مشخص از معماری مجموعه دستورالعمل (ISA) در 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 همخوانی دارند.
- -march=cpu
- تولید کد برای یک پردازنده (CPU) مشخص MIPS.
- -mtune=cpu
- زمانبندی و بهینهسازی برای یک CPU مشخص MIPS.
- -mfix7000
- -mno-fix7000
- در صورتی که خواندن ثبات مقصد یک دستورالعمل mfhi یا mflo در دو دستورالعمل بعدی رخ دهد، باعث درج دستورالعملهای nop میشود.
- -mfix-rm7000
- -mno-fix-rm7000
- در صورتی که یک دستورالعمل dmult یا dmultu توسط یک دستورالعمل بارگذاری (load) دنبال شود، باعث درج nop میشود.
- -mfix-r5900
- -mno-fix-r5900
- تلاشی برای زمانبندی دستورالعمل قبلی در شکاف تأخیر (delay slot) یک دستورالعمل شاخهبندی (branch) که در انتهای یک حلقه کوتاه شامل شش دستورالعمل یا کمتر قرار دارد نمیکند و در عوض همیشه یک دستورالعمل "nop" را در آنجا زمانبندی میکند. باگ حلقه کوتاه تحت شرایط خاصی و به دلیل یک نقص سختافزاری در تراشه R5900 باعث میشود که حلقهها تنها یک یا دو بار اجرا شوند.
- -mdebug
- -no-mdebug
- باعث میشود خروجی اشکالزدایی با سبک stabs بهجای بخشهای استاندارد .stabs در ELF، در یک بخش .mdebug با سبک ECOFF قرار گیرد.
- -mpdr
- -mno-pdr
- تولید بخشهای ".pdr" را کنترل میکند.
- -mgp32
- -mfp32
- اندازه ثباتها بهطور معمول از ISA و ABI استنتاج میشود، اما این پرچمها گروه خاصی از ثباتها را مجبور میکنند که همیشه با پهنای ۳۲ بیت در نظر گرفته شوند. -mgp32 اندازه ثباتهای همهمنظوره (general-purpose) و -mfp32 اندازه ثباتهای ممیز شناور (floating-point) را کنترل میکند.
- -mgp64
- -mfp64
- اندازه ثباتها بهطور معمول از ISA و ABI استنتاج میشود، اما این پرچمها گروه خاصی از ثباتها را مجبور میکنند که همیشه با پهنای ۶۴ بیت در نظر گرفته شوند. -mgp64 اندازه ثباتهای همهمنظوره و -mfp64 اندازه ثباتهای ممیز شناور را کنترل میکند.
- -mfpxx
- اندازه ثباتها بهطور معمول از ISA و ABI استنتاج میشود، اما استفاده از این پرچم در ترکیب با -mabi=32 گونهای از ABI را فعال میکند که با ثباتهای ممیز شناور ۳۲ یا ۶۴ بیتی بهدرستی کار خواهد کرد.
- -modd-spreg
- -mno-odd-spreg
- در صورت پشتیبانی توسط ISA، استفاده از عملیات ممیز شناور را روی ثباتهای فردِ دقتتکی (single-precision) فعال میکند. گزینه -mfpxx مستلزم -mno-odd-spreg است، در غیر این صورت مقدار پیشفرض -modd-spreg میباشد.
- -mips16
- -no-mips16
- تولید کد برای پردازنده MIPS 16. این معادل قرار دادن ".module mips16" در ابتدای فایل اسمبلی است. -no-mips16 این گزینه را غیرفعال میکند.
- -mmips16e2
- -mno-mips16e2
- استفاده از دستورالعملهای MIPS16e2 را در حالت MIPS16 فعال میکند. این معادل قرار دادن ".module mips16e2" در ابتدای فایل اسمبلی است. گزینه -mno-mips16e2 این گزینه را غیرفعال میکند..IP -mmicromips 4
- -mno-micromips
- تولید کد برای پردازندهٔ microMIPS. این معادل قرار دادن ".module micromips" در ابتدای فایل اسمبلی است. -mno-micromips این گزینه را غیرفعال میکند. این معادل قرار دادن ".module nomicromips" در ابتدای فایل اسمبلی است.
- -msmartmips
- -mno-smartmips
- افزونهٔ SmartMIPS را برای مجموعه دستورالعملهای MIPS32 فعال میکند. این معادل قرار دادن ".module smartmips" در ابتدای فایل اسمبلی است. -mno-smartmips این گزینه را غیرفعال میکند.
- -mips3d
- -no-mips3d
- تولید کد برای افزونه با کاربرد خاص MIPS-3D (یا MIPS-3D Application Specific Extension). این گزینه به اسمبلر میگوید که دستورالعملهای MIPS-3D را بپذیرد. -no-mips3d این گزینه را غیرفعال میکند.
- -mdmx
- -no-mdmx
- تولید کد برای افزونه با کاربرد خاص MDMX. این گزینه به اسمبلر میگوید که دستورالعملهای MDMX را بپذیرد. -no-mdmx این گزینه را غیرفعال میکند.
- -mdsp
- -mno-dsp
- تولید کد برای افزونه با کاربرد خاص DSP Release 1. این گزینه به اسمبلر میگوید که دستورالعملهای DSP Release 1 را بپذیرد. -mno-dsp این گزینه را غیرفعال میکند.
- -mdspr2
- -mno-dspr2
- تولید کد برای افزونه با کاربرد خاص DSP Release 2. این گزینه متضمن -mdsp است. این گزینه به اسمبلر میگوید که دستورالعملهای DSP Release 2 را بپذیرد. -mno-dspr2 این گزینه را غیرفعال میکند.
- -mdspr3
- -mno-dspr3
- تولید کد برای افزونه با کاربرد خاص DSP Release 3. این گزینه متضمن -mdsp و -mdspr2 است. این گزینه به اسمبلر میگوید که دستورالعملهای DSP Release 3 را بپذیرد. -mno-dspr3 این گزینه را غیرفعال میکند.
- -mmsa
- -mno-msa
- تولید کد برای افزونه معماری سیمد (MIPS SIMD Architecture Extension). این گزینه به اسمبلر میگوید که دستورالعملهای MSA را بپذیرد. -mno-msa این گزینه را غیرفعال میکند.
- -mxpa
- -mno-xpa
- تولید کد برای افزونه آدرس فیزیکی گسترشیافته MIPS (XPA). این گزینه به اسمبلر میگوید که دستورالعملهای XPA را بپذیرد. -mno-xpa این گزینه را غیرفعال میکند.
- -mmt
- -mno-mt
- تولید کد برای افزونه با کاربرد خاص MT. این گزینه به اسمبلر میگوید که دستورالعملهای MT را بپذیرد. -mno-mt این گزینه را غیرفعال میکند.
- -mmcu
- -mno-mcu
- تولید کد برای افزونه با کاربرد خاص MCU. این گزینه به اسمبلر میگوید که دستورالعملهای MCU را بپذیرد. -mno-mcu این گزینه را غیرفعال میکند.
- -mcrc
- -mno-crc
- تولید کد برای افزونه با کاربرد خاص بررسی افزونگی چرخهای (CRC) در MIPS. این گزینه به اسمبلر میگوید که دستورالعملهای CRC را بپذیرد. -mno-crc این گزینه را غیرفعال میکند.
- -mginv
- -mno-ginv
- تولید کد برای افزونه با کاربرد خاص باطلسازی سراسری (GINV). این گزینه به اسمبلر میگوید که دستورالعملهای GINV را بپذیرد. -mno-ginv این گزینه را غیرفعال میکند.
- -mloongson-mmi
- -mno-loongson-mmi
- تولید کد برای افزونه با کاربرد خاص دستورالعملهای چندرسانهای لونگسان (Loongson MMI). این گزینه به اسمبلر میگوید که دستورالعملهای MMI را بپذیرد. -mno-loongson-mmi این گزینه را غیرفعال میکند.
- -mloongson-cam
- -mno-loongson-cam
- تولید کد برای دستورالعملهای حافظه با آدرسدهی محتوا (CAM) در Loongson. این گزینه به اسمبلر میگوید که دستورالعملهای Loongson CAM را بپذیرد. -mno-loongson-cam این گزینه را غیرفعال میکند.
- -mloongson-ext
- -mno-loongson-ext
- تولید کد برای دستورالعملهای افزونههای لونگسان (Loongson EXT). این گزینه به اسمبلر میگوید که دستورالعملهای Loongson EXT را بپذیرد. -mno-loongson-ext این گزینه را غیرفعال میکند.
- -mloongson-ext2
- -mno-loongson-ext2
- تولید کد برای دستورالعملهای افزونههای نسخه ۲ لونگسان (Loongson EXT2). این گزینه متضمن -mloongson-ext است. این گزینه به اسمبلر میگوید که دستورالعملهای Loongson EXT2 را بپذیرد. -mno-loongson-ext2 این گزینه را غیرفعال میکند.
- -minsn32
- -mno-insn32
- هنگام تولید کد برای پردازندهٔ microMIPS، تنها از کدگذاریهای ۳۲ بیتی دستورالعمل استفاده میکند. این گزینه مانع از استفاده از هرگونه دستورالعمل ۱۶ بیتی میشود. این معادل قرار دادن ".set insn32" در ابتدای فایل اسمبلی است. -mno-insn32 این گزینه را غیرفعال میکند. این معادل قرار دادن ".set noinsn32" در ابتدای فایل اسمبلی است. بهطور پیشفرض -mno-insn32 انتخاب شده است که اجازه میدهد تمام دستورالعملها استفاده شوند.
- --construct-floats
- --no-construct-floats
- گزینهٔ --no-construct-floats ساخت ثوابت ممیز شناور با عرض دوگانه را از طریق بارگذاری دو نیمهٔ مقدار در دو ثبات ممیز شناور با عرض تکی که ثبات با عرض دوگانه را تشکیل میدهند، غیرفعال میکند. بهطور پیشفرض --construct-floats انتخاب شده است که امکان ساخت این ثوابت ممیز شناور را فراهم میکند.
- --relax-branch
- --no-relax-branch
- گزینهٔ --relax-branch تعدیل و انبساط شاخههای خارج از محدوده (branch relaxation) را فعال میکند. بهطور پیشفرض --no-relax-branch انتخاب شده است، که باعث میشود هر شاخهٔ خارج از محدوده خطایی تولید کند.
- -mignore-branch-isa
- -mno-ignore-branch-isa
- بررسیهای شاخه برای گذارهای نامعتبر میان حالتهای ISA را نادیده میگیرد. معناشناسی شاخهها امکان تعویض حالت ISA را فراهم نمیکند، بنابراین در بیشتر موارد حالت ISA که یک شاخه برای آن کدگذاری شده است باید با حالت ISA برچسب هدفِ شاخه یکسان باشد. از این رو GAS بررسیهایی پیادهسازی کرده است که در زمان اسمبلی شاخه، تطابق این دو حالت ISA را اعتبارسنجی میکند. -mignore-branch-isa این بررسیها را غیرفعال میسازد. بهطور پیشفرض -mno-ignore-branch-isa انتخاب شده است، که باعث میشود هر شاخهٔ نامعتبر که نیازمند گذار میان حالتهای ISA باشد، یک خطا ایجاد کند..IP -mnan=encoding 4 انتخاب میان قالبهای کدگذاری NaN استاندارد IEEE 754-2008 (-mnan=2008) یا موروثی (-mnan=legacy). مورد دوم، پیشفرض است.
- --emulation=name
- این گزینه
سابقاً
برای
جابهجایی
میان خروجی
ELF و ECOFF در
مقصدهایی
مانند IRIX 5 که
از هر دو
پشتیبانی
میکردند
استفاده
میشد.
پشتیبانی
از MIPS ECOFF در GAS 2.24
حذف شد،
بنابراین
این گزینه
اکنون
کاربرد
چندانی
ندارد. این
گزینه
صرفاً برای
سازگاری با
گذشته حفظ
شده است.
نامهای پیکربندی در دسترس عبارتند از: mipself، mipslelf و mipsbelf. انتخاب mipself اکنون هیچ اثری ندارد، چرا که خروجی همیشه ELF است. mipslelf و mipsbelf بهترتیب خروجیهای little- و big-endian را انتخاب میکنند، اما اکنون گزینههای -EL و -EB بهجای آنها ترجیح داده میشوند.
- -nocpp
- دستور as این گزینه را نادیده میگیرد. این گزینه برای سازگاری با ابزارهای بومی پذیرفته میشود.
- --trap
- --no-trap
- --break
- --no-break
- کنترل نحوه برخورد با سرریز ضرب و تقسیم بر صفر. --trap یا --no-break (که مترادف یکدیگرند) یک استثنای trap ایجاد میکنند (و تنها برای معماری مجموعه دستورالعملهای سطح ۲ و بالاتر کار میکنند)؛ --break یا --no-trap (نیز مترادف یکدیگر و حالت پیشفرض) یک استثنای break ایجاد میکنند.
- -n
- هنگامی که از این گزینه استفاده شود، as هربار که یک دستور nop از یک ماکرو تولید کند، هشداری صادر خواهد کرد.
گزینههای زیر هنگامی در دسترس هستند که as برای یک پردازنده LoongArch پیکربندی شده باشد.
گزینههای زیر هنگامی در دسترس هستند که 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 relaxation برای این فایل.
- "-mb2bb-relax"
- بهینهسازی انشعابهای پشتسرهم (Back-to-back).
- "-mno-all-relax"
- بازداری از تمام بهینهسازیهای relaxation برای این فایل.
- "-march=<arch name>"
- اسمبل کردن برای معماری <arch name> که میتواند v3، v3j، v3m، v3f، v3s، v2، v2j، v2f یا v2s باشد.
- "-mbaseline=<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"
- فعال/غیرفعال کردن افزونه ۱۶ بیتی
- "-m[no-]dx-regs"
- فعال/غیرفعال کردن ثباتهای d0/d1
- "-m[no-]perf-ext"
- فعال/غیرفعال کردن افزونه کارایی (Performance)
- "-m[no-]perf2-ext"
- فعال/غیرفعال کردن افزونه کارایی ۲ (Performance 2)
- "-m[no-]string-ext"
- فعال/غیرفعال کردن افزونه رشته (String)
- "-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"
- فعال/غیرفعال کردن دستورالعملهای fused-multiply-add در FPU
- "-mall-ext"
- فعال کردن پشتیبانی از تمام افزونهها و دستورالعملها
گزینههای زیر هنگامی در دسترس هستند که as برای یک پردازنده PowerPC پیکربندی شده باشد.
- -a32
- تولید خروجی ELF32 یا XCOFF32..IP -a64 4 تولید ELF64 یا XCOFF64.
- -K PIC
- تنظیم EF_PPC_RELOCATABLE_LIB در پرچمهای ELF.
- -mpwrx | -mpwr2
- تولید کد برای POWER/2 (RIOS2).
- -mpwr
- تولید کد برای POWER (RIOS1).
- -m601
- تولید کد برای PowerPC 601.
- -mppc, -mppc32, -m603, -m604
- تولید کد برای PowerPC 603/604.
- -m403, -m405
- تولید کد برای PowerPC 403/405.
- -m440
- تولید کد برای PowerPC 440. دستورالعملهای BookE و برخی دستورالعملهای 405.
- -m464
- تولید کد برای PowerPC 464.
- -m476
- تولید کد برای PowerPC 476.
- -m7400, -m7410, -m7450, -m7455
- تولید کد برای PowerPC 7400/7410/7450/7455.
- -m750cl, -mgekko, -mbroadway
- تولید کد برای PowerPC 750CL/Gekko/Broadway.
- -m821, -m850, -m860
- تولید کد برای PowerPC 821/850/860.
- -mppc64, -m620
- تولید کد برای PowerPC 620/625/630.
- -me200z2, -me200z4
- تولید کد برای گونههای e200؛ e200z2 همراه با LSP، و e200z4 همراه با SPE.
- -me300
- تولید کد برای خانوادهٔ PowerPC e300.
- -me500, -me500x2
- تولید کد برای مجتمع هستهٔ Motorola e500.
- -me500mc
- تولید کد برای مجتمع هستهٔ Freescale e500mc.
- -me500mc64
- تولید کد برای مجتمع هستهٔ Freescale e500mc64.
- -me5500
- تولید کد برای مجتمع هستهٔ Freescale e5500.
- -me6500
- تولید کد برای مجتمع هستهٔ Freescale e6500.
- -mlsp
- فعالسازی دستورالعملهای LSP. (غیرفعالسازی SPE و SPE2.)
- -mspe
- تولید کد برای دستورالعملهای Motorola SPE. (غیرفعالسازی LSP.)
- -mspe2
- تولید کد برای دستورالعملهای Freescale SPE2. (غیرفعالسازی LSP.)
- -mtitan
- تولید کد برای مجتمع هستهٔ AppliedMicro Titan.
- -mppc64bridge
- تولید کد برای PowerPC 64، شامل دستورالعملهای bridge.
- -mbooke
- تولید کد برای BookE ۳۲-بیتی.
- -ma2
- تولید کد برای معماری A2.
- -maltivec
- تولید کد برای پردازندههای دارای دستورالعملهای AltiVec.
- -mvle
- تولید کد برای دستورالعملهای Freescale PowerPC VLE.
- -mvsx
- تولید کد برای پردازندههای دارای دستورالعملهای Vector-Scalar (VSX).
- -mhtm
- تولید کد برای پردازندههای دارای دستورالعملهای حافظهٔ تراکنشی سختافزاری (Hardware Transactional Memory).
- -mpower4, -mpwr4
- تولید کد برای معماری Power4.
- -mpower5, -mpwr5, -mpwr5x
- تولید کد برای معماری Power5.
- -mpower6, -mpwr6
- تولید کد برای معماری Power6.
- -mpower7, -mpwr7
- تولید کد برای معماری Power7.
- -mpower8, -mpwr8
- تولید کد برای معماری Power8.
- -mpower9, -mpwr9
- تولید کد برای معماری Power9.
- -mpower10, -mpwr10
- تولید کد برای معماری Power10.
- -mpower11, -mpwr11
- تولید کد برای معماری Power11.
- -mfuture
- تولید کد برای معماری 'future'.
- -mcell
- -mcell
- تولید کد برای معماری Cell Broadband Engine.
- -mcom
- تولید کد برای دستورالعملهای مشترک Power/PowerPC.
- -many
- تولید کد برای هر معماریای (PWR/PWRX/PPC).
- -mregnames
- مجاز شمردن نامهای نمادین برای ثباتها.
- -mno-regnames
- غیرمجاز بودن نامهای نمادین برای ثباتها.
- -mrelocatable
- پشتیبانی از گزینهٔ -mrelocatable در GCC.
- -mrelocatable-lib
- پشتیبانی از گزینهٔ -mrelocatable-lib در GCC.
- -memb
- تنظیم بیت PPC_EMB در پرچمهای ELF.
- -mlittle, -mlittle-endian, -le
- تولید کد برای یک ماشین اندیان کوچک (little endian).
- -mbig, -mbig-endian, -be
- تولید کد برای یک ماشین اندیان بزرگ (big endian).
- -msolaris
- تولید کد برای Solaris.
- -mno-solaris
- عدم تولید کد برای Solaris.
- -nops=count
- اگر یک دستورالعمل همترازی بیش از count دستور nop درج کند، یک شاخه در ابتدا قرار میدهد تا از اجرای این nopها صرفنظر شود.
گزینههای زیر هنگامی در دسترس هستند که as برای یک پردازندهٔ RISC-V پیکربندی شده باشد.
- -fpic
- -fPIC
- تولید کد مستقل از موقعیت (position-independent).
- -fno-pic
- عدم تولید کد مستقل از موقعیت (پیشفرض).
- -march=ISA|Profiles|Profiles_ISA
- انتخاب isa پایه، به شکلی که توسط ISA یا Profiles یا Profiles_ISA مشخص شده است. برای نمونه -march=rv32ima -march=RVI20U64 -march=RVI20U64_d. اگر این گزینه و صفتهای معماری تنظیم نشده باشند، اسمبلر تنظیم پیشفرض پیکربندی --with-arch=ISA را بررسی خواهد کرد.
- -misa-spec=ISAspec
- انتخاب نسخهٔ پیشفرض مشخصات (spec) مربوط به isa. اگر نسخهٔ ISA توسط -march تعیین نشده باشد، اسمبلر به تنظیم نسخه بر اساس مشخصات پیشفرضِ انتخابشده کمک میکند. اگر این گزینه تنظیم نشده باشد، اسمبلر تنظیم پیشفرض پیکربندی --with-isa-spec=ISAspec را بررسی خواهد کرد.
- -mpriv-spec=PRIVspec
- انتخاب نسخهٔ مشخصات سطح دسترسی (privileged spec). بر اساس مشخصات انتخابشده میتوان معتبر بودن یا نبودن CSR را تعیین کرد. اگر این گزینه و صفتهای سطح دسترسی تنظیم نشده باشند، اسمبلر تنظیم پیشفرض پیکربندی --with-priv-spec=PRIVspec را بررسی خواهد کرد.
- -mabi=ABI
- انتخاب ABI، که یا "ilp32" است یا "lp64"، و میتواند به صورت اختیاری با "f" ،"d" یا "q" دنبال شود تا قرارداد فراخوانی ممیز شناور با دقت یگانه (single-precision)، دقت دوگانه (double-precision) یا دقت چهارگانه (quad-precision) را مشخص کند؛ یا هیچکدام یا "e" برای مشخص کردن قرارداد فراخوانی ممیز شناور نرمافزاری (soft-float) باشد ("e" نشاندهندهٔ ABI از نوع soft-float RVE است)..IP -mrelax 4 بهرهگیری از سادهسازیهای پیونددهنده (linker relaxations) به منظور کاهش تعداد دستورالعملهای مورد نیاز برای محققسازی آدرسهای نماد. (پیشفرض)
- -mno-relax
- سادهسازیهای پیونددهنده را انجام نمیدهد.
- -march-attr
- تولید محتوای پیشفرض برای بخش ویژگیهای riscv elf در صورتی که دایرکتیوهای .attribute تنظیم نشده باشند. این بخش برای ثبت اطلاعاتی به کار میرود که پیونددهنده یا بارگذار زمان اجرا (runtime loader) برای بررسی سازگاری به آن نیاز دارند. این اطلاعات شامل رشته ISA، نیازمندی تراز پشته (stack alignment)، دسترسیهای حافظه ترازنشده، و نگارشهای اصلی، فرعی و بازبینی مشخصات ممتاز (privileged specification) است.
- -mno-arch-attr
- در صورتی که دایرکتیوهای .attribute تنظیم نشده باشند، بخش ویژگیهای پیشفرض riscv elf را تولید نمیکند.
- -mcsr-check
- فعالسازی بررسی CSR برای CSRهای وابسته به ISA و CSRهای فقطخواندنی. CSRهای وابسته به ISA تنها زمانی معتبر هستند که ISA مشخصشده تنظیم شده باشد. CSRهای فقطخواندنی نمیتوانند توسط دستورالعملهای CSR بازنویسی شوند.
- -mno-csr-check
- بررسی CSR را انجام نمیدهد.
- -mlittle-endian
- تولید کد برای یک ماشین با ترتیب بایت اندیان کوچک (little-endian).
- -mbig-endian
- تولید کد برای یک ماشین با ترتیب بایت اندیان بزرگ (big-endian).
برای مستندات گزینههای ویژه RX، صفحات info را مشاهده کنید.
گزینههای زیر هنگامی در دسترس هستند که as برای خانواده پردازندههای s390 پیکربندی شده باشد.
- -m31
- -m64
- انتخاب اندازه کلمه، یا ۳۱/۳۲ بیت یا ۶۴ بیت.
- -mesa
- -mzarch
- انتخاب حالت معماری، یا Enterprise System Architecture (esa) یا حالت z/Architecture (zarch).
- -march=processor
- مشخص میکند کدام گونه پردازنده 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).
- -mregnames
- -mno-regnames
- مجاز یا غیرمجاز کردن استفاده از نامهای نمادین برای ثباتها.
- -mwarn-areg-zero
- هشدار دادن هر زمان که عملوند یک ثبات پایه (base) یا شاخص (index) مشخص شده باشد اما مقدار آن صفر ارزیابی شود.
- -mwarn-regtype-mismatch=strict
- -mwarn-regtype-mismatch=relaxed
- -mwarn-regtype-mismatch=no
- -mno-warn-regtype-mismatch
- کنترل میکند که آیا اسمبلر بررسی نوع نام ثبات را انجام دهد و در صورت عدم تطابق با نوع ثبات عملوند، یک پیام هشدار صادر کند یا خیر. حالت پیشفرض (که میتواند با استفاده از آرگومان relaxed بازیابی شود) انجام بررسیهای نوع نام ثبات بهصورت سهلگیرانه است، که به نامهای ثبات ممیز شناور (FPR) از %f0 تا %f15 اجازه میدهد تا به عنوان آرگومان برای عملوندهای ثبات برداری (VR) مشخص شوند و به نامهای ثبات برداری (VR) از %v0 تا %v15 اجازه میدهد تا به عنوان آرگومان برای عملوندهای ثبات ممیز شناور (FPR) مشخص شوند. این موضوع قابل قبول است زیرا FPRها در نیمه پایینی VR تعبیه شدهاند. با استفاده از آرگومان strict، بررسیهای نوع نام ثبات بهصورت سختگیرانه انجام میشود. آرگومان no که معادل با -mno-warn-regtype-mismatch است، هرگونه بررسی نوع نام ثبات را غیرفعال میکند.
گزینههای زیر هنگامی در دسترس هستند که as برای یک پردازنده TMS320C6000 پیکربندی شده باشد.
- -march=arch
- فعالسازی
(تنها)
دستورالعملهای
معماری arch.
بهطور
پیشفرض،
تمام
دستورالعملها
مجاز هستند.
مقادیر زیر برای arch پذیرفته میشوند: "c62x"، "c64x"، "c64x+"، "c67x"، "c67x+"، "c674x".
- -mdsbt
- -mno-dsbt
- گزینه -mdsbt باعث میشود اسمبلر ویژگی "Tag_ABI_DSBT" را با مقدار 1 تولید کند که نشاندهنده استفاده کد از آدرسدهی DSBT است. گزینه -mno-dsbt که پیشفرض است، باعث میشود این برچسب مقدار 0 داشته باشد که نشان میدهد کد از آدرسدهی DSBT استفاده نمیکند. پیونددهنده در صورتی که شیءهایی (objects) از انواع مختلف (DSBT و غیر DSBT) با یکدیگر پیوند داده شوند، یک هشدار صادر خواهد کرد.
- -mpid=no
- -mpid=near
- -mpid=far
- گزینه -mpid= باعث میشود اسمبلر ویژگی "Tag_ABI_PID" را با مقداری تولید کند که بیانگر شکل آدرسدهی دادههای مورد استفاده توسط کد است. -mpid=no که پیشفرض است، نشاندهنده آدرسدهی داده وابسته به مکان است؛ -mpid=near نشاندهنده آدرسدهی مستقل از مکان با دسترسیهای GOT با استفاده از آدرسدهی نزدیک DP است؛ و -mpid=far نشاندهنده آدرسدهی مستقل از مکان با دسترسیهای GOT با استفاده از آدرسدهی دور DP است. پیونددهنده در صورتی که شیءهای ساختهشده با تنظیمات مختلف این گزینه با یکدیگر پیوند داده شوند، هشدار صادر خواهد کرد.
- -mpic
- -mno-pic
- گزینه -mpic باعث میشود اسمبلر ویژگی "Tag_ABI_PIC" را با مقدار 1 تولید کند که نشاندهنده استفاده کد از آدرسدهی کد مستقل از مکان است. گزینه "-mno-pic" که پیشفرض است، باعث میشود این برچسب مقدار 0 داشته باشد که نشاندهنده آدرسدهی کد وابسته به مکان است. پیونددهنده در صورتی که شیءهایی از انواع مختلف (وابسته به مکان و مستقل از مکان) با یکدیگر پیوند داده شوند، هشدار صادر خواهد کرد.
- -mbig-endian
- -mlittle-endian
- تولید کد برای ترتیب بایت مشخصشده. مقدار پیشفرض little-endian است.
گزینههای زیر هنگامی در دسترس هستند که as برای یک پردازنده TILE-Gx پیکربندی شده باشد.
- -m32 | -m64
- انتخاب اندازه کلمه، یا ۳۲ بیت یا ۶۴ بیت.
- -EB | -EL
- انتخاب ترتیب بایت، یا اندیان بزرگ (-EB) یا اندیان کوچک (-EL).
گزینه زیر هنگامی در دسترس است که as برای یک پردازنده Visium پیکربندی شده باشد.
- -mtune=arch
- این گزینه
معماری هدف
را مشخص
میکند. اگر
تلاشی برای
اسمبل کردن
دستورالعملی
صورت گیرد
که روی
معماری هدف
اجرا
نمیشود،
اسمبلر یک
پیام خطا
صادر خواهد
کرد.
نامهای زیر شناخته میشوند: "mcm24" "mcm" "gr5" "gr6"
گزینههای زیر هنگامی در دسترس هستند که as برای یک پردازنده Xtensa پیکربندی شده باشد.
- --text-section-literals | --no-text-section-literals
- نحوه مدیریت مخازن لیترال (literal pools) را کنترل میکند. مقدار پیشفرض --no-text-section-literals است که لیترالها را در بخشهای جداگانهای در فایل خروجی قرار میدهد. این کار اجازه میدهد مخزن لیترال در یک RAM/ROM داده قرار گیرد. با استفاده از --text-section-literals، لیترالها در بخش text پراکنده میشوند تا در نزدیکترین حالت ممکن به مراجع خود نگه داشته شوند. این امر ممکن است برای فایلهای اسمبلی بزرگ ضروری باشد، جایی که در غیر این صورت لیترالها خارج از محدوده دسترس دستورالعملهای "L32R" در بخش text قرار میگیرند. لیترالها در پی دایرکتیوهای ".literal_position" یا پیش از دستورالعملهای "ENTRY" در مخازن دستهبندی میشوند. این گزینهها تنها بر لیترالهایی تأثیر میگذارند که از طریق دستورالعملهای نسبی به شمارنده برنامه (PC-relative) "L32R" به آنها ارجاع داده شده است؛ لیترالهای مربوط به حالت مطلق دستورالعملهای "L32R" بهطور جداگانه مدیریت میشوند.
- --auto-litpools | --no-auto-litpools
- نحوه مدیریت مخازن لیترال را کنترل میکند. مقدار پیشفرض --no-auto-litpools است که در صورت نبود --text-section-literals، لیترالها را در بخشهای جداگانهای در فایل خروجی قرار میدهد. این کار اجازه میدهد مخزن لیترال در یک داده RAM/ROM قرار گیرد. با استفاده از --auto-litpools، لیترالها در بخش text پراکنده میشوند تا تا حد امکان نزدیک به مراجع خود نگه داشته شوند و نیازی به دایرکتیوهای صریح ".literal_position" نیست. این امر ممکن است برای توابع بسیار بزرگ ضروری باشد، جایی که یک مخزن لیترال منفرد در ابتدای تابع ممکن است برای دستورالعملهای "L32R" در انتهای آن قابل دسترسی نباشد. این گزینهها تنها بر لیترالهایی تأثیر میگذارند که از طریق دستورالعملهای نسبی به شمارنده برنامه (PC-relative) "L32R" به آنها ارجاع داده شده است؛ لیترالهای مربوط به حالت مطلق دستورالعملهای "L32R" بهطور جداگانه مدیریت میشوند. هنگامی که این گزینه همراه با --text-section-literals استفاده شود، --auto-litpools اولویت دارد..IP "--absolute-literals | --no-absolute-literals" 4 مشخص میکند که آیا دستورالعملهای "L32R" از آدرسدهی مطلق استفاده کنند یا وابسته به PC (PC-relative). اگر پردازنده دارای گزینهٔ آدرسدهی مطلق باشد، حالت پیشفرض استفاده از بازنشانیهای (relocations) مطلق "L32R" است. در غیر این صورت، تنها بازنشانیهای وابسته به PC برای "L32R" میتوانند استفاده شوند.
- --target-align | --no-target-align
- فعال یا غیرفعال کردن ترازسازی خودکار برای کاهش جریمههای انشعاب (branch penalties) به بهای افزایش اندک حجم کد. این بهینهسازی به طور پیشفرض فعال است. توجه داشته باشید که اسمبلر همواره دستورالعملهایی مانند "LOOP" را که نیازمندیهای ترازسازی ثابتی دارند، تراز خواهد کرد.
- --longcalls | --no-longcalls
- فعال یا غیرفعال کردن تبدیل دستورالعملهای فراخوانی (call) برای امکانپذیر ساختن فراخوانیها در گسترهٔ بزرگتری از آدرسها. این گزینه باید زمانی استفاده شود که مقصدهای فراخوانی ممکن است خارج از محدوده باشند. این کار ممکن است هم اندازهٔ کد و هم کارایی را کاهش دهد، اما پیونددهنده (linker) عموماً میتواند در صورتی که فراخوانی در نهایت در محدوده قرار گیرد، سربار غیرضروری را بهینهسازی و حذف کند. پیشفرض --no-longcalls است.
- --transform | --no-transform
- فعال یا غیرفعال کردن تمام تبدیلات اسمبلر روی دستورالعملهای Xtensa، شامل هر دو مورد آرامسازی (relaxation) و بهینهسازی. پیشفرض --transform است؛ --no-transform باید تنها در موارد نادری به کار رود که دستورالعملها باید دقیقاً مطابق با آنچه در کد منبع اسمبلی مشخص شده باشند. استفاده از --no-transform باعث میشود عملوندهای دستورالعمل خارج از محدوده به عنوان خطا در نظر گرفته شوند.
- --rename-section oldname=newname
- تغییر نام بخش oldname به newname. از این گزینه میتوان چندین بار برای تغییر نام چندین بخش استفاده کرد.
- --trampolines | --no-trampolines
- فعال یا غیرفعال کردن تبدیل دستورالعملهای پرش (jump) برای امکانپذیر ساختن پرشها در گسترهٔ بزرگتری از آدرسها. این گزینه باید زمانی استفاده شود که مقصدهای پرش ممکن است خارج از محدوده باشند. در صورت نبود چنین پرشهایی، این گزینه اثری بر اندازهٔ کد یا کارایی نخواهد داشت. مقدار پیشفرض --trampolines است.
- --abi-windowed | --abi-call0
- انتخاب برچسب ABI که در بخش ".xtensa.info" نوشته میشود. برچسب ABI، نوع ABI کد اسمبلی را مشخص میکند. در صورت تلاش برای پیوند دادن فایلهای شیء با برچسبهای ABI ناسازگار، هشداری از سوی پیونددهنده صادر میشود. ABI پیشفرض توسط پیکربندی هستهٔ Xtensa انتخاب میشود.
گزینههای زیر هنگامی که as برای پردازندهٔ Z80 پیکربندی شده باشد در دسترس هستند.
@chapter ویژگیهای وابسته به Z80
گزینههای خط فرمان (Command-line Options)
- -march=CPU[-EXT...][+EXT...]
- این گزینه
پردازندهٔ
هدف را
تعیین
میکند. اگر
تلاشی برای
اسمبل کردن
دستورالعملی
صورت گیرد
که بر روی
پردازندهٔ
هدف اجرا
نخواهد شد،
اسمبلر
پیغامی
مبنی بر خطا
صادر خواهد
کرد. نام
پردازندههای
زیر
شناختهشده
هستند:
"z80"،
"z180"،
"ez80"،
"gbz80"،
"z80n"،
"r800".
علاوه بر
مجموعه
دستورالعمل
پایه،
میتوان به
اسمبلر
اعلام کرد
که برخی
یادافزارهای
(mnemonics) افزونه
را نیز
بپذیرد.
برای مثال،
"-march=z180+sli+infc"
دستورالعملهای
SLI و IN F,(C) را به
z180
میافزاید.
افزونههای
زیر در حال
حاضر
پشتیبانی
میشوند:
"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" در نظر گرفته میشود.
- -local-prefix=prefix
- تمام برچسبها با پیشوند مشخصشده را به عنوان محلی (local) علامتگذاری میکند. با این حال چنین برچسبی میتواند به طور صریح در کد به عنوان سراسری (global) مشخص شود. این گزینه پیشوند پیشفرض برچسب محلی ".L" را تغییر نمیدهد، بلکه فقط پیشوند جدیدی اضافه میکند.
- -colonless
- پذیرش برچسبهای بدون دونقطه (:). تمام نمادها در ابتدای خط به عنوان برچسب در نظر گرفته میشوند.
- -sdcc
- پذیرش کد اسمبلی تولیدشده توسط SDCC.
- -fp-s=FORMAT
- قالب اعداد ممیز شناور با دقت یگانه. پیشفرض: ieee754 (۳۲ بیتی).
- -fp-d=FORMAT
- قالب اعداد ممیز شناور با دقت مضاعف. پیشفرض: ieee754 (۶۴ بیتی).
همچنین ببینید (SEE ALSO)
کپیرایت و تکثیر (COPYRIGHT)
Copyright (c) 1991-2025 Free Software Foundation, Inc.
اجازهٔ کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ متأخر دیگری که توسط بنیاد نرمافزارهای آزاد منتشر شده است، بدون بخشهای تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد اعطا میشود. نسخهای از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.
| 2026-01-23 | binutils-2.45.1 |