AS(1)

الاسم
AS - مجمّع جنو المنقول.

موجز
as [-a[cdghilns][=ملف]]
 [--alternate]
 [--compress-debug-sections] [--nocompress-debug-sections]
 [-D]
 [--dump-config]
 [--debug-prefix-map قديم=جديد]
 [--defsym رمز=قيمة]
 [--elf-stt-common=[no|yes]]
 [--emulation=اسم]
 [-f]
 [-g] [--gstabs] [--gstabs+]
 [--gdwarf-<N>] [--gdwarf-sections]
 [--gdwarf-cie-version=إصدار]
 [--generate-missing-build-notes=[no|yes]]
 [--gsframe] [--gsframe=[no|yes]]
 [--gsframe-3]
 [--hash-size=N]
 [--help] [--target-help]
 [--info] [--no-info]
 [-I دليل]
 [-J]
 [-K]
 [--keep-locals]
 [-L]
 [--listing-lhs-width=عدد]
 [--listing-lhs-width2=عدد]
 [--listing-rhs-width=عدد]
 [--listing-cont-lines=عدد]
 [--multibyte-handling=[allow|warn|warn-sym-only]]
 [--no-pad-sections]
 [-o ملف_هدف] [-R]
 [--scfi=experimental]
 [--sectname-subst]
 [--size-check=[error|warning]]
 [--statistics]
 [-v] [--verbose]
 [-version] [--version]
 [-W] [--no-warn] [--warn] [--fatal-warnings]
 [-w] [-x]
 [-Z] [@ملف]
 [خيارات-الهدف]
 [--|ملفات ...]

الهدف
خيارات هدف AArch64:
   [-EB|-EL]
   [-mabi=ABI]

خيارات هدف Alpha:
   [-mمعالج]
   [-mdebug | -no-mdebug]
   [-replace | -noreplace]
   [-relax] [-g] [-Gحجم]
   [-F] [-32addr]

خيارات هدف ARC:
   [-mcpu=معالج]
   [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS]
   [-mcode-density]
   [-mrelax]
   [-EB|-EL]

خيارات هدف ARM:
   [-mcpu=معالج[+إضافة...]]
   [-march=معمارية[+إضافة...]]
   [-mfpu=تنسيق-الفاصلة-العائمة]
   [-mfloat-abi=abi]
   [-meabi=إصدار]
   [-mthumb]
   [-EB|-EL]
   [-mapcs-32|-mapcs-26|-mapcs-float|
    -mapcs-reentrant]
   [-mthumb-interwork] [-k]

خيارات هدف Blackfin:
   [-mcpu=معالج[-مراجعة]]
   [-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=معمارية] [-mcpu=معالج]
   [-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=معالج[+إضافة...]] [-mtune=معالج]

خيارات هدف 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=معالج] [-mfpu=معالج] [-mdsp=معالج] خيارات هدف MICROBLAZE:
   [-mlittle-endian] [-mbig-endian]

خيارات هدف MIPS:
   [-nocpp] [-EL] [-EB] [-O[مستوى التحسين]]
   [-g[مستوى التنقيح]] [-G عدد] [-KPIC] [-call_shared]
   [-non_shared] [-xgot [-mvxworks-pic]
   [-mabi=ABI] [-32] [-n32] [-64] [-mfp32] [-mgp32]
   [-mfp64] [-mgp64] [-mfpxx]
   [-modd-spreg] [-mno-odd-spreg]
   [-march=معالج] [-mtune=معالج] [-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=ترميز]
   [-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=معالج]
    [-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]
   [-mإضافة|-mno-إضافة]
   [-mمعالج] [-mآلة]

خيارات هدف 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]
   [-nops=عدد]

خيارات هدف PRU:
   [-link-relax]
   [-mnolink-relax]
   [-mno-warn-regname-label]

خيارات هدف RISC-V:
   [-fpic|-fPIC|-fno-pic]
   [-march=ISA|تشكيلات|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=عدد]
   [-mgcc-abi|-mrx-abi]

خيارات هدف s390:
   [-m31|-m64] [-mesa|-mzarch] [-march=معالج]
   [-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 عدد][-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 <اسم_الملف>|-me <اسم_الملف>]

خيارات هدف TIC6X:
   [-march=معمارية] [-mbig-endian|-mlittle-endian]
   [-mdsbt|-mno-dsbt] [-mpid=no|-mpid=near|-mpid=far]
   [-mpic|-mno-pic]

خيارات هدف TILE-Gx:
   [-m32|-m64][-EB][-EL]

خيارات هدف Visium:
   [-mtune=معمارية]

خيارات هدف Xtensa:
 [--[no-]text-section-literals] [--[no-]auto-litpools]
 [--[no-]absolute-literals]
 [--[no-]target-align] [--[no-]longcalls]
 [--[no-]transform]
 [--rename-section الاسم_القديم=الاسم_الجديد]
 [--[no-]trampolines]
 [--abi-windowed|--abi-call0]

خيارات هدف Z80:
  [-march=CPU[-EXT][+EXT]]
  [-local-prefix=بادئة]
  [-colonless]
  [-sdcc]
  [-fp-s=تنسيق]
  [-fp-d=تنسيق]

الوصف
جنو 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 لترى بدقة الخيارات التي يمررها إلى كل مرحلة ترجمة، بما في ذلك المجمّع.)

الخيارات

@الملف
    اقرأ خيارات سطر الأوامر من file. تُدرج الخيارات المقروءة مكان خيار @file الأصلي. إذا كان file غير موجود، أو لا يمكن قراءته، فسيُعامل الخيار حرفيًا ولن يُزال.

    تُفصل الخيارات في file بمسافات فارغة. يمكن تضمين حرف مسافة فارغة في خيار ما عن طريق إحاطة الخيار بالكامل إما بعلامات اقتباس مفردة أو مزدوجة. يمكن تضمين أي حرف (بما في ذلك الشرطة المائلة العكسية) عن طريق سبق الحرف المراد تضمينه بشرطة مائلة عكسية. يمكن لـ file نفسه أن يحتوي على خيارات @file إضافية؛ وتُعالج أي خيارات من هذا القبيل بشكل متكرر (recursively).

-a[cdghilmns]
    تشغيل القوائم، بأي طريقة من الطرق المتنوعة:

    -ac حذف الشروط الزائفة

    -ad حذف توجيهات التنقيح

    -ag تضمين معلومات عامة، مثل إصدار as والخيارات الممرة

    -ah تضمين المصدر عالي المستوى

    -al تضمين التجميع

    -ali
        تضمين التجميع مع ginsn

    -am تضمين توسعات الماكرو

    -an حذف معالجة النماذج

    -as تضمين الرموز

    =ملف
        ضبط اسم ملف القائمة

    يمكنك دمج هذه الخيارات؛ على سبيل المثال، استخدم -aln لقائمة تجميع بدون معالجة النماذج. خيار =ملف، إذا استخدم، يجب أن يكون الأخير. بمفرده، يؤول -a مبدئيًا إلى -ahls.

--alternate
    البدء في وضع الماكرو البديل.

--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  تمكين التنقيح في الخلفيات المخصصة للأهداف، إذا كانت مدعومة. وإلا فإنه يُتجاهل. حتى لو تم تجاهله، يُقبل هذا الخيار للتوافق البرمجي مع استدعاءات المجمعات الأخرى.

--debug-prefix-map قديم=جديد
    عند تجميع الملفات في الدليل قديم، سجّل معلومات التنقيح واصفًا إياها كما لو كانت في جديد بدلًا من ذلك.

--defsym رمز=قيمة
    عرّف الرمز رمز ليكون قيمة قبل تجميع ملف الإدخال. يجب أن تكون قيمة ثابتًا عدديًا صحيحًا. كما في لغة C، تشير البادئة 0x إلى قيمة سداسية عشرية، والبادئة 0 تشير إلى قيمة ثمانية. يمكن تجاوز قيمة الرمز داخل الملف المصدري باستخدام pseudo-op من نوع ".set".

--dump-config
    يعرض كيفية ضبط المجمّع ثم يخرج.

--elf-stt-common=no
--elf-stt-common=yes
    تتحكم هذه الخيارات فيما إذا كان مجمّع ELF يجب أن يولد رموزًا مشتركة بنوع "STT_COMMON". يمكن التحكم في الوضع المبدئي عبر خيار ضبط --enable-elf-stt-common.

--emit-local-absolute
    إصدار حتى الرموز المطلقة (المحلية) المعرفة مسبقًا إلى جدول الرموز الصادر. لاحظ أن هذا ليس العكس تمامًا لخيار --strip-local-absolute.

--emulation=اسم
    إذا ضُبط المجمّع ليدعم تشكيلات أهداف متعددة مختلفة، فيمكن استخدام هذا الخيار لاختيار الشكل المطلوب.

-f  "سريع"---يتخطى المسافات البيضاء والمعالجة المسبقة للتعليقات (يفترض أن المصدر هو مخرجات المجمع).

-g
--gen-debug
    يولّد معلومات التنقيح لكل سطر مصدر للمجمّع باستخدام أي تنسيق تنقيح يفضله الهدف. وهذا يعني حاليًا إما STABS أو ECOFF أو DWARF2. عندما يكون تنسيق التنقيح هو DWARF، فإن قسمي ".debug_info" و ".debug_line" لا يُصدران إلا إذا لم يقم ملف التجميع بتوليد أحدهما بنفسه.

--gstabs
    يولّد معلومات تنقيح stabs لكل سطر تجميع. قد يساعد هذا في تنقيح كود المجمّع، إذا كان المنقّح يستطيع التعامل معه.

--gstabs+
    يولّد معلومات تنقيح stabs لكل سطر تجميع، مع امتدادات GNU التي ربما لا يستطيع التعامل معها سوى gdb، والتي قد تؤدي إلى تعطل المنقحات الأخرى أو رفضها قراءة برنامجك. قد يساعد هذا في تنقيح كود المجمّع. حاليًا، امتداد GNU الوحيد هو موقع دليل العمل الحالي وقت التجميع.

--gdwarf-2
    يولّد معلومات تنقيح DWARF2 لكل سطر تجميع. قد يساعد هذا في تنقيح كود المجمّع، إذا كان المنقّح يستطيع التعامل معه. لاحظ أن هذا الخيار مدعوم من قبل بعض الأهداف فقط، وليس جميعها.

--gdwarf-3
    هذا الخيار هو نفسه خيار --gdwarf-2، إلا أنه يسمح بإمكانية توليد معلومات تنقيح إضافية وفقًا للإصدار 3 من مواصفات DWARF. لاحظ - تمكين هذا الخيار لا يضمن توليد أي معلومات إضافية، فالخيار في القيام بذلك يعتمد على كل هدف.

--gdwarf-4
    هذا الخيار هو نفسه خيار --gdwarf-2، إلا أنه يسمح بإمكانية توليد معلومات تنقيح إضافية وفقًا للإصدار 4 من مواصفات DWARF. لاحظ - تمكين هذا الخيار لا يضمن توليد أي معلومات إضافية، فالخيار في القيام بذلك يعتمد على كل هدف.

--gdwarf-5
    هذا الخيار هو نفسه خيار --gdwarf-2، إلا أنه يسمح بإمكانية توليد معلومات تنقيح إضافية وفقًا للإصدار 5 من مواصفات DWARF. لاحظ - تمكين هذا الخيار لا يضمن توليد أي معلومات إضافية، فالخيار في القيام بذلك يعتمد على كل هدف.

--gdwarf-sections
    بدلاً من إنشاء قسم .debug_line، سيُنشئ سلسلة من أقسام .debug_line.foo حيث foo هو اسم قسم الكود المقابل. على سبيل المثال، قسم الكود المسمى .text.func ستوضع معلومات رقم سطر dwarf الخاصة به في قسم يسمى .debug_line.text.func. إذا كان قسم الكود يسمى ببساطة .text، فسيظل قسم خط التنقيح يسمى فقط .debug_line بدون أي لاحقة.

--gdwarf-cie-version=version
    يتحكم في إصدار مدخلات المعلومات العامة (CIEs) لـ DWARF التي يتم إنتاجها. عندما لا يُحدد هذا العلم، يكون الإصدار المبدئي هو 1، رغم أن بعض الأهداف يمكنها تعديل هذا الافتراض. القيم الأخرى الممكنة لـ version هي 3 أو 4.

--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. يمكن التحكم في الوضع المبدئي بواسطة خيار الضبط --enable-default-sframe. الإصدار الحالي لبيانات تتبع المكدس SFrame المصدرة هو SFRAME_VERSION_3.

--gsframe-3
    يولّد معلومات تتبع مكدس SFrame وفقًا للإصدار 3 من المواصفات.

--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
    يمنع المجمّع من حشو نهايات أقسام المخرجات لمحاذاة هذا القسم. الوضع المبدئي هو حشو الأقسام، لكن هذا يمكن أن يهدر مساحة قد تكون مطلوبة على الأهداف التي لديها قيود ذاكرة ضيقة.

-o objfile
    يسمي مخرجات ملف الكائن من as بـ objfile.

-R  يدمج قسم البيانات في قسم النص.

--reduce-memory-overheads
    مُتجاهَل. مدعوم للتوافق مع الأدوات التي تمرر نفس الخيار لكل من المجمّع والرابط.

--scfi=experimental
    يتحكم هذا الخيار فيما إذا كان المجمّع يجب أن يركب CFI للمدخلات المكتوبة يدويًا. إذا كانت المدخلات تحتوي بالفعل على بعض توجيهات 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
    يصدر خطأً أو تحذيرًا لتوجيه .size الخاص بـ ELF غير الصالح.

--statistics
    يطبع أقصى مساحة (بالبايت) وإجمالي الوقت (بالثواني) المستخدم في عملية التجميع.

--strip-local-absolute
    يزيل الرموز المطلقة المحلية من جدول الرموز الصادر.

-v
--verbose
    يطبع إصدار as.

--version
-version
    يطبع إصدار as ويخرج.

-W
--no-warn
    يكبت رسائل التحذير.

--warn
    لا يكبت رسائل التحذير أو يعاملها كأخطاء.

--fatal-warnings
    يعامل التحذيرات كأخطاء.

-w  مُتجاهَل.

-x  مُتجاهَل.

-Z  ولّد ملف كائن حتى بعد حدوث أخطاء.

-- | ملفات ...
    المدخل القياسي، أو ملفات المصدر للتجميع.

الخيارات التالية متاحة عندما يُضبط as لوضع 64-بت لمعمارية ARM (AArch64).

-EB يحدد هذا الخيار وجوب وسم المخرجات المولدة بواسطة المجمع بأنها مرمزة لمعالج بترتيب طرفية كبيرة (big-endian).

-EL يحدد هذا الخيار وجوب وسم المخرجات المولدة بواسطة المجمع بأنها مرمزة لمعالج بترتيب طرفية صغيرة (little-endian).

-mabi=abi
    حدد واجهة ABI التي يستخدمها الكود المصدري. المعاملات المدعومة هي: "ilp32" و "lp64"، والتي تحدد تنسيق ملف الكائن المولد بصيغتي ELF32 و ELF64 على التوالي. القيمة المبدئية هي "lp64".

-mcpu=المعالج[+إضافة...]
    يحدد هذا الخيار المعالج المستهدف. سيُصدر المجمّع رسالة خطأ إذا أُجريت محاولة لتجميع تعليمة لن تعمل على المعالج المستهدف. أسماء المعالجات المدعومة هي: "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" للسماح للمجمع بقبول التعليمات الصالحة لأي معالج مدعوم، بما في ذلك جميع الإضافات الاختيارية.

    بالإضافة إلى مجموعة التعليمات الأساسية، يمكن إخبار المجمّع بقبول أو تقييد رموز الإضافات المتنوعة التي توسع قدرات المعالج.

    إذا كانت بعض تطبيقات معالج معين يمكن أن تحتوي على إضافة، فستُفعل تلك الإضافات آلياً. وبناءً عليه، لن تضطر عادةً إلى تحديد أي إضافات إضافية.

-march=المعمارية[+إضافة...]
    يحدد هذا الخيار المعمارية المستهدفة. سيُصدر المجمّع رسالة خطأ إذا أُجريت محاولة لتجميع تعليمة لن تعمل على المعمارية المستهدفة. أسماء المعماريات المدعومة هي: "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، لا تُفعل الإضافات دائماً بشكل مبدئي.

-mbig-obj
    في أهداف PE/COFF، يفرض هذا الخيار استخدام تنسيق ملف الكائن الكبير، مما يسمح بأكثر من 32768 قسماً.

-mverbose-error
    يُفعل هذا الخيار رسائل الخطأ المفصلة لـ AArch64 gas. هذا الخيار مُفعل مبدئياً.

-mno-verbose-error
    يعطل هذا الخيار رسائل الخطأ المفصلة في AArch64 gas.

-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 (محمل إقلاع Linux 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.

-g  يُستخدم هذا الخيار عندما يولد المترجم معلومات التنقيح. عندما يستخدم gcc الأداة mips-tfile لتوليد معلومات التنقيح لـ ECOFF، يجب تمرير اللصائق المحلية إلى ملف الكائن. خلاف ذلك، ليس لهذا الخيار أي تأثير.

-Gالحجم
    يوضع الرمز العام المحلي الأكبر من الحجم في ".bss"، بينما توضع الرموز الأصغر في ".sbss".

-F
-32addr
    يُتجاهل هذان الخياران من أجل التوافقية مع الإصدارات السابقة.

الخيارات التالية متاحة عندما يُضبط as لمعالج ARC.

-mcpu=معالج
    يختار هذا الخيار نوع المعالج الرئيس.

-EB | -EL
    اختر المخرجات إما بترتيب طرفية كبيرة (-EB) أو ترتيب طرفية صغيرة (-EL).

-mcode-density
    فعل تعليمات إضافة كثافة الكود (Code Density).

الخيارات التالية متاحة عندما يُضبط as لعائلة معالجات ARM.

-mcpu=المعالج[+إضافة...]
    حدد أي نوع من معالجات ARM هو المستهدف.

-march=المعمارية[+إضافة...]
    حدد أي نوع من معماريات ARM يُستخدم بواسطة المستهدف.

-mfpu=تنسيق_النقطة_العائمة
    اختر أي معمارية نقطة عائمة هي المستهدفة.

-mfloat-abi=abi
    اختر أي ABI نقطة عائمة هو المستخدم.

-mthumb
    فعل فك ترميز تعليمات Thumb فقط.

-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant
    اختر أي اتفاقية استدعاء إجراءات هي المستخدمة.

-EB | -EL
    اختر المخرجات إما بترتيب طرفية كبيرة (-EB) أو ترتيب طرفية صغيرة (-EL).

-mthumb-interwork
    حدد أن الكود قد وُلد مع مراعاة العمل البيني بين كود Thumb وكود ARM.

-mccs
    يفعل وضع التوافق مع بناء جملة تجميع CodeComposer Studio.

-k  حدد أن كود PIC قد وُلد.

الخيارات التالية متاحة عندما يُضبط as لعائلة معالجات Blackfin.

-mcpu=المعالج[-sirevision]
    يحدد هذا الخيار المعالج المستهدف. لا يُستخدم sirevision الاختياري في المجمّع. وُجد هنا لكي يتمكن GCC من تمرير خيار "-mcpu=" بسهولة. سيُصدر المجمّع رسالة خطأ إذا أُجريت محاولة لتجميع تعليمة لن تعمل على المعالج المستهدف. أسماء المعالجات التالية مدعومة: "bf504"، و "bf506"، و "bf512"، و "bf514"، و "bf516"، و "bf518"، و "bf522"، و "bf523"، و "bf524"، و "bf525"، و "bf526"، و "bf527"، و "bf531"، و "bf532"، و "bf533"، و "bf534"، و "bf535" (لم يُنفذ بعد)، و "bf536"، و "bf537"، و "bf538"، و "bf539"، و "bf542"، و "bf542m"، و "bf544"، و "bf544m"، و "bf547"، و "bf547m"، و "bf548"، و "bf548m"، و "bf549"، و "bf549m"، و "bf561"، و "bf592".

-mfdpic
    جمع من أجل FDPIC ABI.

-mno-fdpic
-mnopic
    عطل -mfdpic.

الخيارات التالية متاحة عندما يُضبط as لعائلة معالجات BPF لنواة Linux.

@chapter الميزات المعتمدة على BPF

  خيارات BPF

-EB يحدد هذا الخيار وجوب قيام المجمّع بإصدار eBPF بترتيب طرفية كبيرة.

-EL يحدد هذا الخيار وجوب قيام المجمّع بإصدار eBPF بترتيب طرفية صغيرة.

-mdialect=اللهجة
    يحدد هذا الخيار لهجة لغة التجميع التي يجب التعرف عليها أثناء التجميع. يدعم المجمّع normal و pseudoc.

-misa-spec=spec
    يحدد هذا الخيار إصدار مجموعة تعليمات BPF لاستخدامها عند التجميع. إصدارات BPF ISA المدعومة هي v1 و v2 و v3 و v4.

    يمكن تحديد القيمة xbpf للتعرف على تعليمات إضافية يستخدمها GCC لأغراض الاختبار. لكن احذر، فهذا ليس BPF صالحاً.

-mno-relax
    يخبر هذا الخيار المجمّع بعدم إرخاء (relax) التعليمات.

لاحظ أنه إذا لم يُحدد خيار ترتيب الطرفية في سطر الأوامر، فسيُستخدم ترتيب طرفية المضيف. راجع صفحات معلومات (info) لتوثيق خيارات CRIS المحددة.

الخيارات التالية متاحة عندما يُضبط as لعائلة معالجات C-SKY.

-march=اسم_المعمارية
    جمع من أجل المعمارية اسم_المعمارية. يسرد الخيار --help القيم الصالحة لـ اسم_المعمارية.

-mcpu=اسم_المعالج
    جمع من أجل المعمارية اسم_المعالج. يسرد الخيار --help القيم الصالحة لـ اسم_المعالج.

-EL
-mlittle-endian
    ولد مخرجات بنهاية صغيرة (little-endian).

-EB
-mbig-endian
    ولد مخرجات بنهاية كبيرة (big-endian).

-fpic
-pic
    ولّد كوداً مستقلاً عن الموقع.

-mljump
-mno-ljump
    تمكين/تعطيل تحويل تعليمات التفرع القصيرة "jbf" و "jbt" و "jbr" إلى "jmpi". هذا الخيار لمعالجات V2 فقط. يُتجاهل في أهداف CK801 و CK802، التي لا تدعم تعليمات "jmpi"، ويُمكّن مبدئيًا للمعالجات الأخرى.

-mbranch-stub
-mno-branch-stub
    تمرير عمليات إعادة التوطين "R_CKCORE_PCREL_IMM26BY2" لتعليمات "bsr" إلى الرابط.

    هذا الخيار متاح فقط لأهداف ELF من نوع C-SKY V2 ذات العتاد الخام، حيث يُمكّن مبدئيًا. ولا يمكن استخدامه في كود سيُربط ديناميكيًا مع مكتبات مشتركة.

-force2bsr
-mforce2bsr
-no-force2bsr
-mno-force2bsr
    تمكين/تعطيل تحويل تعليمات "jbsr" إلى "bsr". هذا الخيار مُمكّن دائمًا (ويُتجاهل -mno-force2bsr) لأهداف CK801/CK802. كما أنه مُمكّن دائمًا عندما يكون -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
    تمكين تعليمات الفاصلة العائمة العتادية (hard float).

-mmp
    تمكين تعليمات المعالجات المتعددة.

-mcp
    تمكين تعليمات المعالج المساعد.

-mcache
    تمكين تعليمة الجلب المسبق للخبيئة.

-msecurity
    تمكين تعليمات C-SKY الأمنية.

-mtrust
    تمكين تعليمات C-SKY الموثوقة.

-mdsp
    تمكين تعليمات معالجة الإشارات الرقمية (DSP).

-medsp
    تمكين تعليمات DSP المحسنة.

-mvdsp
    تمكين تعليمات DSP الشعاعية (vector).

الخيارات التالية متاحة عندما يكون as مضبوطًا لمعالج Epiphany.

-mepiphany
    يحدد السماح بكل من تعليمات 32 و 16 بت. هذا هو السلوك المبدئي.

-mepiphany16
    يقيد التعليمات المسموح بها لمجموعة 16 بت فقط.

الخيارات التالية متاحة عندما يكون as مضبوطًا لمعالج H8/300. @chapter ميزات H8/300 التابعة

  الخيارات
إصدار Renesas H8/300 من "as" له خيار واحد تابع للجهاز:

-h-tick-hex
    دعم ثوابت الستة عشري بنمط H'00 بالإضافة إلى نمط 0x00.

-mach=الاسم
    يضبط متغير جهاز H8300. أسماء الأجهزة التالية مُتعرف عليها: "h8300h"، و "h8300hn"، و "h8300s"، و "h8300sn"، و "h8300sx" و "h8300sxn".

الخيارات التالية متاحة عندما يكون as مضبوطًا لمعالج i386.

--32 | --x32 | --64
    اختر حجم الكلمة، إما 32 بت أو 64 بت. --32 تلمح إلى بنية Intel i386، بينما تلمح --x32 و --64 إلى بنية AMD x86-64 مع حجم كلمة 32 بت أو 64 بت على التوالي.

    هذه الخيارات متاحة فقط مع تنسيق ملف الكائنات ELF، وتتطلب تضمين دعم BFD الضروري (في منصة 32 بت يجب عليك إضافة --enable-64-bit-bfd إلى خيارات الضبط لتمكين استخدام 64 بت واستخدام x86-64 كمنصة مستهدفة).

-n  مبدئيًا، يستبدل GAS الخاص بـ x86 تعليمات nop المتعددة المستخدمة للمحاذاة داخل أقسام الكود بتعليمات nop متعددة البايت مثل leal 0(%esi,1)،%esi. هذا المفتاح يعطل التحسين إذا تم تحديد nop أحادي البايت (0x90) صراحةً كبايت ملء للمحاذاة.

--divide
    في المنصات المشتقة من SVR4، يُعامل المحرف / كمحرف تعليق، مما يعني أنه لا يمكن استخدامه في التعبيرات. الخيار --divide يحول / إلى محرف عادي. هذا لا يعطل / في بداية السطر لبدء تعليق، ولا يؤثر على استخدام # لبدء تعليق.

-march=المعالج[+الامتداد...]
    يحدد هذا الخيار المعالج المستهدف. سيصدر المجمّع رسالة خطأ إذا جرت محاولة لتجميع تعليمة لن تعمل على المعالج المستهدف. أسماء المعالجات التالية مُتعرف عليها: "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"، و "znver6"، و "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"، "avx512_bmm"، "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"، "apx_nci"، "apx_ndd"، "apx_nf"، "apx_nci_ndd_nf"، "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".

-mtune=CPU
    يحدد هذا الخيار معالجًا للتحسين له. عند استخدامه بالاقتران مع خيار -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 التي تستخدم GPRs الموسعة ببادئة EVEX، مما يتطلب توفر AVX512 أو AVX10.

-muse-unaligned-vector-move
    يحدد هذا الخيار وجوب تشفير المجمّع لنقل المتجه المحاذى كأنه نقل متجه غير محاذى.

-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 القياسية بطول متجه 128 بت، وهو المبدئي. -mavxscalar=256 ستشفر تعليمات AVX القياسية بطول متجه 256 بت.

    تحذير: لا تستخدم هذا لكود الإنتاج - بسبب أخطاء المعالج (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 بطول متجه 128 بت، وهو القيمة المبدئية. الخياران -mevexlig=256 و -mevexlig=512 سيرمزان تعليمات LIG EVEX بطول متجه 256 بت و 512 بت، على التوالي.

-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
    يحدد هذا الخيار فن استذكار (mnemonic) التعليمات لمطابقة التعليمات. تُعطى الأولوية للتوجيهات ".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، يقوم المجمّع عادة بتحسين عمليات إعادة التوطين (relocations) غير التابعة لـ PLT ضد أهداف الفروع العالمية غير الضعيفة والمعرفة بظهور مبدئي. الخيار -mshared يخبر المجمّع بتوليد كود قد يدخل في مكتبة مشتركة حيث يمكن استباق جميع أهداف الفروع العالمية غير الضعيفة ذات الظهور المبدئي. الكود الناتج أكبر قليلاً. يؤثر هذا الخيار فقط على معالجة تعليمات الفروع.

-mbig-obj
    في أهداف PE/COFF، يفرض هذا الخيار استخدام تنسيق ملف الكائن الكبير، مما يسمح بأكثر من 32768 قسماً.

-momit-lock-prefix=no
-momit-lock-prefix=yes
    تتحكم هذه الخيارات في كيفية ترميز المجمّع لبادئة القفل (lock prefix). هذا الخيار مخصص كحل بديل للمعالجات التي تفشل عند مواجهة بادئة القفل. لا يمكن استخدام هذا الخيار بأمان إلا مع حواسيب ذات نواة واحدة وخيط معالجة واحد. الخيار -momit-lock-prefix=yes سيحذف جميع بادئات القفل. الخيار -momit-lock-prefix=no سيرمز بادئة القفل كالمعتاد، وهو القيمة المبدئية.

-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) في وضع 64 بت و lock addl $0x0, (%esp) في وضع 32 بت. الخيار -mfence-as-lock-add=no سيرمز هذه التعليمات كالمعتاد، وهو القيمة المبدئية.

-mrelax-relocations=no
-mrelax-relocations=yes
    تتحكم هذه الخيارات فيما إذا كان يجب على المجمّع توليد عمليات إعادة توطين مخففة (relax relocations)، مثل R_386_GOT32X في وضع 32 بت، أو R_X86_64_GOTPCRELX و R_X86_64_REX_GOTPCRELX في وضع 64 بت. سيقوم -mrelax-relocations=yes بتوليدها، بينما -mrelax-relocations=no لن يولدها.

-mtls-check=no
-mtls-check=yes
    تتحكم هذه الخيارات فيما إذا كان المجمّع سيتحقق من إعادة توطين tls. سيتحقق -mtls-check=yes من إعادة توطين tls، بينما -mtls-check=no لن يفعل ذلك. يمكن التحكم في القيمة المبدئية عبر خيار الضبط --enable-x86-tls-check.

-malign-branch-boundary=NUM
    يتحكم هذا الخيار في كيفية محاذاة المجمّع للفروع باستخدام بادئات المقاطع أو NOP. يجب أن يكون NUM قوة للعدد 2. ويجب أن يكون 0 أو لا يقل عن 16. ستُحاذى الفروع ضمن حدود NUM بايت. القيمة المبدئية -malign-branch-boundary=0 لا تحاذي الفروع.

-malign-branch=TYPE[+TYPE...]
    يحدد هذا الخيار أنواع الفروع المراد محاذاتها. TYPE هو مزيج من: jcc (لمحاذاة القفزات الشرطية)، fused (لمحاذاة القفزات الشرطية المدمجة)، jmp (لمحاذاة القفزات غير الشرطية)، call (لمحاذاة الاستدعاءات)، ret (لمحاذاة تعليمات العودة)، و indirect (لمحاذاة القفزات والاستدعاءات غير المباشرة). القيمة المبدئية هي -malign-branch=jcc+fused+jmp.

-malign-branch-prefix-size=NUM
    يحدد هذا الخيار الحد الأقصى لعدد البادئات في التعليمة لمحاذاة الفروع. يجب أن يكون NUM بين 0 و 5. القيمة المبدئية لـ NUM هي 5.

-mbranches-within-32B-boundaries
    يقوم هذا الخيار بمحاذاة القفزات الشرطية، والقفزات الشرطية المدمجة، والقفزات غير الشرطية ضمن حدود 32 بايت مع ما يصل إلى 5 بادئات مقاطع لكل تعليمة. وهو يعادل -malign-branch-boundary=32 و -malign-branch=jcc+fused+jmp و -malign-branch-prefix-size=5. المبدئياً لا تُحاذى الفروع.

-mlfence-after-load=no
-mlfence-after-load=yes
    تتحكم هذه الخيارات فيما إذا كان يجب على المجمّع توليد 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
    تتحكم هذه الخيارات فيما إذا كان يجب على المجمّع توليد lfence قبل تعليمات الفروع القريبة غير المباشرة. سيقوم -mlfence-before-indirect-branch=all بتوليد lfence قبل الفرع القريب غير المباشر عبر السجل وإصدار تحذير قبل الفرع القريب غير المباشر عبر الذاكرة. كما يضبط ضمناً -mlfence-before-ret=shl عند عدم وجود خيار -mlfence-before-ret= صريح. سيقوم -mlfence-before-indirect-branch=register بتوليد lfence قبل الفرع القريب غير المباشر عبر السجل. بينما سيصدر -mlfence-before-indirect-branch=memory تحذيراً قبل الفرع القريب غير المباشر عبر الذاكرة. الخيار -mlfence-before-indirect-branch=none لن يولد lfence ولن يصدر تحذيراً، وهو القيمة المبدئية. لاحظ أن lfence لن يُولد قبل الفرع القريب غير المباشر عبر السجل مع -mlfence-after-load=yes لأن lfence سيُولد بعد تحميل سجل هدف الفرع.

-mlfence-before-ret=none
-mlfence-before-ret=shl
-mlfence-before-ret=or
-mlfence-before-ret=yes
-mlfence-before-ret=not
    تتحكم هذه الخيارات فيما إذا كان يجب على المجمّع توليد lfence قبل تعليمة العودة (ret). سيولد -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 من النوع 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
    يحدد هذا الخيار أنه يجب على المجمّع قبول AMD64 أو Intel64 ISA فقط في وضع 64 بت. المبدئي هو قبول ISAs المشتركة، و Intel64 فقط، و AMD64.

-O0 | -O | -O1 | -O2 | -Os
    تحسين ترميز التعليمات بحجم تعليمة أصغر. يقوم الخياران -O و -O1 بترميز تعليمات تحميل سجل 64 بت بقيمة فورية 64 بت كتعليمات تحميل سجل 32 بت بقيم فورية 31 بت أو 32 بت، وترميز تعليمات تصفير سجل 64 بت بتعليمات تصفير سجل 32 بت، وترميز تعليمات تصفير سجلات المتجهات VEX/EVEX بسعة 256/512 بت بتعليمات تصفير سجلات متجهات VEX بسعة 128 بت، وترميز تعليمات تحميل/تخزين سجل متجهات EVEX بسعة 128/256 بت بتعليمات تحميل/تخزين سجل متجهات VEX، وترميز تعليمات المنطق الصحيح المعبأ EVEX بسعة 128/256 بت بتعليمات المنطق الصحيح المعبأ VEX بسعة 128/256 بت.

    يتضمن -O2 تحسينات -O1 بالإضافة إلى ترميز تعليمات تصفير سجل المتجهات EVEX بسعة 256/512 بت بتعليمات تصفير سجل متجهات EVEX بسعة 128 بت. في وضع 64 بت، سيتم أيضاً تبديل المعاملات المصدرية لتعليمات VEX المرمزة ذات المعاملات المصدرية التبديلية إذا كان ذلك يسمح باستخدام شكل بادئة VEX المكون من 2 بايت بدلاً من 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
    تمتلك الآلة المستهدفة (أو لا تمتلك) معالجًا مساعدًا للنقطة العائمة. المبدئي هو افتراض وجود معالج مساعد لـ 68020 و68030 وcpu32. على الرغم من أن 68000 الأساسي غير متوافق مع 68881، إلا أنه يمكن تحديد مزيج بينهما، حيث إنه من الممكن محاكاة تعليمات المعالج المساعد باستخدام المعالج الرئيس.

-m68851 | -mno-68851
    تمتلك الآلة المستهدفة (أو لا تمتلك) معالجًا مساعدًا لوحدة إدارة الذاكرة. المبدئي هو افتراض وجود وحدة إدارة ذاكرة (MMU) لـ 68020 وما فوقه.

للتفاصيل حول خيارات الميزات المعتمدة على آلة PDP-11، انظر PDP-11-Options.

-mpic | -mno-pic
    توليد كود مستقل عن الموضع (أو معتمد عليه). المبدئي هو -mpic.

-mall
-mall-extensions
    مكّن كل امتدادات طقم التعليمات. هذا هو المبدئي.

-mno-extensions
    عطّل كل امتدادات طقم التعليمات.

-mالامتداد | -mno-الامتداد
    مكّن (أو عطّل) امتدادًا معينًا لطقم التعليمات.

-mcpu
    مكّن امتدادات طقم التعليمات التي يدعمها معالج معين، وعطّل كل الامتدادات الأخرى.

-mالآلة
    مكّن امتدادات طقم التعليمات التي يدعمها طراز آلة معين، وعطّل كل الامتدادات الأخرى.

الخيارات التالية متاحة عندما يُضبط as لمعالج picoJava.

-mb توليد مخرجات بتنسيق "الطرفية الكبيرة" (big endian).

-ml توليد مخرجات بتنسيق "الطرفية الصغيرة" (little endian).

الخيارات التالية متاحة عندما يُضبط as لمعالج PRU.

-mlink-relax
    افترض أن LD سيحسن تعليمات LDI32 عن طريق فحص الـ 16 بت العليا من التعبير. إذا كانت كلها أصفارًا، فسيقوم LD باختصار تعليمة LDI32 إلى LDI واحدة. في مثل هذه الحالة سيخرج "as" عمليات إعادة توطين DIFF لتعبيرات الفرق.

-mno-link-relax
    افترض أن LD لن يحسن تعليمات LDI32. ونتيجة لذلك، لن تُصدر عمليات إعادة توطين DIFF.

-mno-warn-regname-label
    لا تُحذر إذا تطابق اسم اللصيقة مع اسم السجل. عادةً ما يرغب مبرمجو المجمّع في إصدار هذا التحذير. قد يرغب مترجمو لغة C في إيقافه.

الخيارات التالية متاحة عندما يُضبط as لمعالج MIPS.

-G العدد
    يحدد هذا الخيار أكبر حجم للكائن الذي يمكن الإشارة إليه ضمنيًا باستخدام سجل "gp". لا يُقبل إلا للأهداف التي تستخدم تنسيق ECOFF، مثل محطة DECstation التي تعمل بنظام Ultrix. القيمة المبدئية هي 8.

-EB توليد مخرجات بتنسيق "الطرفية الكبيرة" (big endian).

-EL توليد مخرجات بتنسيق "الطرفية الصغيرة" (little endian).

-mips1
-mips2
-mips3
-mips4
-mips5
-mips32
-mips32r2
-mips32r3
-mips32r5
-mips32r6
-mips64
-mips64r2
-mips64r3
-mips64r5
-mips64r6
    توليد كود لمستوى معين من بنية طقم تعليمات MIPS. خيار -mips1 هو اسم مستعار لـ -march=r3000، و-mips2 هو اسم مستعار لـ -march=r6000، و-mips3 هو اسم مستعار لـ -march=r4000 و-mips4 هو اسم مستعار لـ -march=r8000. وتقابل الخيارات -mips5 و-mips32 و-mips32r2 و-mips32r3 و-mips32r5 و-mips32r6 و-mips64 و-mips64r2 و-mips64r3 و-mips64r5 و-mips64r6 معالجات بنية ISA من الأنواع MIPS V، وMIPS32، وMIPS32 الإصدار 2، وMIPS32 الإصدار 3، وMIPS32 الإصدار 5، وMIPS32 الإصدار 6، وMIPS64، وMIPS64 الإصدار 2، وMIPS64 الإصدار 3، وMIPS64 الإصدار 5، وMIPS64 الإصدار 6، على التوالي.

-march=المعالج
    توليد كود لمعالج MIPS معين.

-mtune=المعالج
    جدولة الكود وضبطه لمعالج MIPS معين.

-mfix7000
-mno-fix7000
    يتسبب في إدراج عمليات فارغة (nops) إذا حدثت قراءة سجل الوجهة لتعليمة mfhi أو mflo في التعليماتين التاليتين.

-mfix-rm7000
-mno-fix-rm7000
    يتسبب في إدراج عمليات فارغة (nops) إذا تلت تعليمة dmult أو dmultu تعليمة تحميل (load).

-mfix-r5900
-mno-fix-r5900
    لا تحاول جدولة التعليمة السابقة في فتحة التأخير لتعليمة فرعية موضوعة في نهاية حلقة قصيرة من ست تعليمات أو أقل، وجدول دائمًا تعليمة "nop" هناك بدلاً من ذلك. تتسبب علة الحلقة القصيرة تحت ظروف معينة في تنفيذ الحلقات مرة واحدة أو مرتين فقط، وذلك بسبب علة عتادية في شريحة R5900.

-mdebug
-no-mdebug
    يتسبب في توجيه مخرجات التنقيح بنمط stabs إلى قسم .mdebug بنمط ECOFF بدلاً من أقسام .stabs القياسية في ELF.

-mpdr
-mno-pdr
    تحكم في توليد أقسام ".pdr".

-mgp32
-mfp32
    عادةً ما تُستنتج أحجام السجلات من بنية ISA وواجهة ABI، ولكن هذه الأعلام تجبر معاملة مجموعة معينة من السجلات على أنها بعرض 32 بت في كل الأوقات. يتحكم -mgp32 في حجم السجلات العامة ويتحكم -mfp32 في حجم سجلات النقطة العائمة.

-mgp64
-mfp64
    عادةً ما تُستنتج أحجام السجلات من بنية ISA وواجهة ABI، ولكن هذه الأعلام تجبر معاملة مجموعة معينة من السجلات على أنها بعرض 64 بت في كل الأوقات. يتحكم -mgp64 في حجم السجلات العامة ويتحكم -mfp64 في حجم سجلات النقطة العائمة.

-mfpxx
    عادةً ما تُستنتج أحجام السجلات من بنية ISA وواجهة ABI، ولكن استخدام هذا العلم بالاقتران مع -mabi=32 يُمكّن تنويعة ABI التي ستعمل بشكل صحيح مع سجلات النقطة العائمة التي تكون بعرض 32 أو 64 بت.

-modd-spreg
-mno-odd-spreg
    مكّن استخدام عمليات النقطة العائمة على السجلات أحادية الدقة ذات الأرقام الفردية عندما تدعمها بنية ISA. يقتضي -mfpxx ضمنيًا -mno-odd-spreg، وإلا فإن المبدئي هو -modd-spreg.

-mips16
-no-mips16
    توليد كود لمعالج MIPS 16. هذا يعادل وضع ".module mips16" في بداية ملف التجميع. يعطل -no-mips16 هذا الخيار.

-mmips16e2
-mno-mips16e2
    مكّن استخدام تعليمات MIPS16e2 في وضع MIPS16. هذا يعادل وضع ".module mips16e2" في بداية ملف التجميع. يعطل -mno-mips16e2 هذا الخيار.

-mmicromips
-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. الخيار -no-mips3d يعطل هذا الخيار.

-mdmx
-no-mdmx
    توليد كود لملحق MDMX الخاص بالتطبيقات. يخبر هذا المجمّع بقبول تعليمات MDMX. الخيار -no-mdmx يعطل هذا الخيار.

-mdsp
-mno-dsp
    توليد كود لملحق DSP الإصدارة 1 الخاص بالتطبيقات. يخبر هذا المجمّع بقبول تعليمات DSP الإصدارة 1. الخيار -mno-dsp يعطل هذا الخيار.

-mdspr2
-mno-dspr2
    توليد كود لملحق DSP الإصدارة 2 الخاص بالتطبيقات. يتضمن هذا الخيار -mdsp. يخبر هذا المجمّع بقبول تعليمات DSP الإصدارة 2. الخيار -mno-dspr2 يعطل هذا الخيار.

-mdspr3
-mno-dspr3
    توليد كود لملحق DSP الإصدارة 3 الخاص بالتطبيقات. يتضمن هذا الخيار -mdsp و -mdspr2. يخبر هذا المجمّع بقبول تعليمات DSP الإصدارة 3. الخيار -mno-dspr3 يعطل هذا الخيار.

-mmsa
-mno-msa
    توليد كود لملحق معمارية MIPS SIMD. يخبر هذا المجمّع بقبول تعليمات 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
    توليد كود لملحق تعليمات ملحقات الوسائط المتعددة (MMI) من Loongson الخاص بالتطبيقات. يخبر هذا المجمّع بقبول تعليمات MMI. الخيار -mno-loongson-mmi يعطل هذا الخيار.

-mloongson-cam
-mno-loongson-cam
    توليد كود لتعليمات ذاكرة المحتوى القابلة للعنوان (CAM) من Loongson. يخبر هذا المجمّع بقبول تعليمات CAM من Loongson. الخيار -mno-loongson-cam يعطل هذا الخيار.

-mloongson-ext
-mno-loongson-ext
    توليد كود لتعليمات ملحقات (EXT) من Loongson. يخبر هذا المجمّع بقبول تعليمات EXT من Loongson. الخيار -mno-loongson-ext يعطل هذا الخيار.

-mloongson-ext2
-mno-loongson-ext2
    توليد كود لتعليمات ملحقات الإصدارة 2 (EXT2) من Loongson. يتضمن هذا الخيار -mloongson-ext. يخبر هذا المجمّع بقبول تعليمات EXT2 من Loongson. الخيار -mno-loongson-ext2 يعطل هذا الخيار.

-minsn32
-mno-insn32
    استخدام ترميزات تعليمات 32-بت فقط عند توليد كود لمعالج microMIPS. يمنع هذا الخيار استخدام أي تعليمات 16-بت. يكافئ هذا وضع ".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 إرخاء التفرعات الخارجة عن النطاق. يُختار --no-relax-branch مبدئيًا، مما يؤدي لإنتاج خطأ عند وجود أي تفرعات خارجة عن النطاق.

-mignore-branch-isa
-mno-ignore-branch-isa
    تجاهل فحوصات التفرع للانتقالات غير الصالحة بين أوضاع معمارية طقم التعليمات (ISA). لا توفر دلالات التفرعات تبديلاً لوضع ISA، لذا في معظم الحالات يجب أن يكون وضع ISA الذي رُمّز التفرع لأجله هو نفسه وضع ISA الخاص بلصيقة هدف التفرع. لذلك، نفذ GAS فحوصات تتحقق في تجميع التفرع من تطابق وضعي ISA. يعطل -mignore-branch-isa هذه الفحوصات. يُختار -mno-ignore-branch-isa مبدئيًا، مما يؤدي لإنتاج خطأ عند أي تفرع غير صالح يتطلب انتقالاً بين أوضاع ISA.

-mnan=ترميز
    الاختيار بين تنسيق ترميز NaN وفق معيار IEEE 754-2008 (-mnan=2008) أو التنسيق الموروث (-mnan=legacy). الأخير هو المبدئي.

--emulation=اسم
    استُخدم هذا الخيار سابقًا للتبديل بين مخرجات ELF و ECOFF على أهداف مثل IRIX 5 التي تدعم كليهما. أزيل دعم MIPS ECOFF في إصدارة GAS 2.24، لذا لا يخدم الخيار الآن سوى غرض ضئيل. أُبقي عليه للتوافقية مع الإصدارات السابقة.

    أسماء الضبط المتاحة هي: mipself و mipslelf و mipsbelf. اختيار mipself الآن ليس له تأثير، بما أن المخرجات دائمًا ELF. يختار mipslelf و mipsbelf مخرجات بنهاية صغرى وكبرى على التوالي، لكن -EL و -EB هما الخياران المفضلان حاليًا.

-nocpp
    يتجاهل as هذا الخيار. قُبل من أجل التوافقية مع الأدوات الأصلية.

--trap
--no-trap
--break
--no-break
    التحكم في كيفية التعامل مع فيض الضرب والقسمة على صفر. --trap أو --no-break (وهما مرادفان) يتخذان استثناء مصيدة (ويعملان فقط لمستوى معمارية طقم تعليمات 2 فما فوق)؛ --break أو --no-trap (مرادفان أيضًا، وهما المبدئيان) يتخذان استثناء كسر.

-n  عند استخدام هذا الخيار، سيصدر as تحذيرًا في كل مرة يولد فيها تعليمة nop من ماكرو.

الخيارات التالية متاحة عندما يُضبط as لمعالج LoongArch.

-fpic
-fPIC
    توليد كود مستقل عن الموضع

-fno-pic
    عدم توليد كود مستقل عن الموضع (مبدئي)

الخيارات التالية متاحة عندما يُضبط as لمعالج Meta.

"-mcpu=metac11"
    توليد كود لـ Meta 1.1.

"-mcpu=metac12"
    توليد كود لـ Meta 1.2.

"-mcpu=metac21"
    توليد كود لـ Meta 2.1.

"-mfpu=metac21"
    السماح للكود باستخدام عتاد FPU الخاص بـ Meta 2.1.

انظر صفحات info لتوثيق خيارات MMIX الخاصة.

الخيارات التالية متاحة عندما يُضبط as لمعالج NDS32.

"-O1"
    التحسين من أجل الأداء.

"-Os"
    التحسين من أجل المساحة.

"-EL"
    إنتاج مخرجات بيانات بنهاية صغرى.

"-EB"
    إنتاج مخرجات بيانات بنهاية صغرى.

"-mpic"
    توليد PIC.

"-mno-fp-as-gp-relax"
    كبح إرخاء fp-as-gp لهذا الملف.

"-mb2bb-relax"
    تحسين التفرع المتتالي (Back-to-back).

"-mno-all-relax"
    كبح كافة عمليات الإرخاء لهذا الملف.

"-march=<arch name>"
    التجميع من أجل المعمارية <اسم المعمارية> التي قد تكون v3، v3j، v3m، v3f، v3s، v2، v2j، v2f، v2s.

"-mbaseline=<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"
    فعل/عطل دعم تعليمات الضرب.

"-m[no-]div"
    فعل/عطل دعم تعليمات القسمة.

"-m[no-]16bit-ext"
    فعل/عطل توسعة 16-بت

"-m[no-]dx-regs"
    فعل/عطل مسجلات d0/d1

"-m[no-]perf-ext"
    فعل/عطل توسعة الأداء

"-m[no-]perf2-ext"
    فعل/عطل توسعة الأداء 2

"-m[no-]string-ext"
    فعل/عطل توسعة السلاسل

"-m[no-]reduced-regs"
    فعل/عطل خيار تهيئة المسجلات المختزلة (GPR16)

"-m[no-]audio-isa-ext"
    فعل/عطل توسعة AUDIO ISA

"-m[no-]fpu-sp-ext"
    فعل/عطل توسعة FPU SP

"-m[no-]fpu-dp-ext"
    فعل/عطل توسعة FPU DP

"-m[no-]fpu-fma"
    فعل/عطل تعليمات الضرب والجمع المدمجة لوحدة الفاصلة العائمة (FPU)

"-mall-ext"
    شغل كل التوسعات ودعم التعليمات

الخيارات التالية متاحة عندما يُضبط as لمعالج PowerPC.

-a32
    وَلِّد ELF32 أو XCOFF32.

-a64
    وَلِّد 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، متضمنة تعليمات الجسر.

-mbooke
    وَلِّد شفرة لـ BookE 32-بت.

-ma2
    وَلِّد شفرة لمعمارية A2.

-maltivec
    وَلِّد شفرة للمعالجات التي تدعم تعليمات AltiVec.

-mvle
    وَلِّد شفرة لتعليمات Freescale PowerPC VLE.

-mvsx
    وَلِّد شفرة للمعالجات التي تدعم تعليمات الموجه السلمي (VSX).

-mhtm
    وَلِّد شفرة للمعالجات التي تدعم تعليمات ذاكرة المعاملات العتادية.

-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).

-nops=العدد
    إذا أدرج توجيه محاذاة أكثر من العدد من العمليات الفارغة (nops)، يوضع فرع في البداية لتخطي تنفيذ هذه العمليات.

الخيارات التالية متاحة عندما يُضبط as لمعالج RISC-V.

-fpic
-fPIC
    توليد كود مستقل عن الموضع

-fno-pic
    عدم توليد كود مستقل عن الموضع (مبدئي)

-march=ISA|Profiles|Profiles_ISA
    اختر معمارية ISA الأساسية، كما هو محدد بواسطة ISA أو Profiles أو Profies_ISA. على سبيل المثال -march=rv32ima -march=RVI20U64 -march=RVI20U64_d. إذا لم يُضبط هذا الخيار وسمات البنية، فسيتحقق المجمّع من إعداد الضبط المبدئي --with-arch=ISA.

-misa-spec=ISAspec
    اختر إصدار مواصفة isa المبدئي. إذا لم يُحدد إصدار ISA بواسطة -march، فسيساعد المجمّع في تعيين الإصدار وفقاً للمواصفة المبدئية المختارة. إذا لم يُضبط هذا الخيار، فسيتحقق المجمّع من إعداد الضبط المبدئي --with-isa-spec=ISAspec.

-mpriv-spec=PRIVspec
    اختر إصدار المواصفات ذات الامتياز. يمكننا تحديد ما إذا كان CSR صالحاً أم لا وفقاً للمواصفة المختارة. إذا لم يُضبط هذا الخيار وسمات الامتياز، فسيتحقق المجمّع من إعداد الضبط المبدئي --with-priv-spec=PRIVspec.

-mabi=ABI
    يختار واجهة التطبيق الثنائية (ABI)، والتي تكون إما "ilp32" أو "lp64"، متبوعة اختيارياً بـ "f" أو "d" أو "q" للإشارة إلى اصطلاح استدعاء الفاصلة العائمة أحادي الدقة أو مزدوج الدقة أو رباعي الدقة، أو لا شيء أو "e" للإشارة إلى اصطلاح استدعاء الفاصلة العائمة البرمجية (تشير "e" إلى ABI لـ RVE بفاصلة عائمة برمجية).

-mrelax
    الاستفادة من تحسينات الوصل (relaxations) لتقليل عدد التعليمات المطلوبة لتحقيق عناوين الرموز. (مبدئي)

-mno-relax
    عدم إجراء تحسينات الوصل.

-march-attr
    توليد المحتويات المبدئية لقسم سمة riscv elf إذا لم تُضبط توجيهات .attribute. يُستخدم هذا القسم لتسجيل المعلومات التي يحتاجها الواصل أو محمل وقت التشغيل للتحقق من التوافق. تتضمن هذه المعلومات سلسلة ISA، ومتطلبات محاذاة المكدس، ووصول الذاكرة غير المحاذى، والإصدار الرئيس والفرعي والمراجعة لمواصفات الامتياز.

-mno-arch-attr
    عدم توليد قسم سمة riscv elf المبدئي إذا لم تُضبط توجيهات .attribute.

-mcsr-check
    تمكين فحص CSR لـ CRS المعتمد على ISA و CSR للقراءة فقط. CSR المعتمد على ISA صالح فقط عند ضبط ISA محدد. CSR للقراءة فقط لا يمكن الكتابة فيه بواسطة تعليمات CSR.

-mno-csr-check
    عدم إجراء فحص CSR.

-mlittle-endian
    توليد الكود لحاسوب بنهاية صغرى (little endian).

-mbig-endian
    توليد الكود لحاسوب بنهاية كبرى (big endian).

انظر صفحات info لتوثيق الخيارات الخاصة بـ RX.

الخيارات التالية متاحة عندما يُضبط as لعائلة معالجات s390.

-m31
-m64
    اختر حجم الكلمة، إما 31/32 بت أو 64 بت.

-mesa
-mzarch
    اختر وضع البنية، إما وضع معمارية نظام المؤسسات (esa) أو وضع z/Architecture (zarch).

-march=المعالج
    حدد أي متغير لمعالج 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
    التحذير كلما حُدد معامل لمسجل أساس أو مسجل فهرس ولكنه يؤدي إلى صفر.

-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=المعمارية
    تمكين التعليمات (فقط) من المعمارية المعمارية. بشكل مبدئي، جميع التعليمات مسموح بها.

    القيم التالية لـ المعمارية مقبولة: "c62x"، و "c64x"، و "c64x+"، و "c67x"، و "c67x+"، و "c674x".

-mdsbt
-mno-dsbt
    يؤدي خيار -mdsbt إلى قيام المجمّع بتوليد سمة "Tag_ABI_DSBT" بقيمة 1، مما يشير إلى أن الكود يستخدم عنونة DSBT. خيار -mno-dsbt، وهو المبدئي، يجعل الوسم يأخذ القيمة 0، مما يشير إلى أن الكود لا يستخدم عنونة DSBT. سيصدر الواصل تحذيراً إذا وُصلت كائنات من أنواع مختلفة (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
    ولّد كودًا لنهاية الترتيب (endianness) المحددة. المبدئي هو نهاية الترتيب الصغيرة (little-endian).

الخيارات التالية متاحة عندما يُضبط as لمعالج TILE-Gx.

-m32 | -m64
    اختر حجم الكلمة، إما 32 بت أو 64 بت.

-EB | -EL
    اختر النهاية (endianness)، إما نهاية كبرى (-EB) أو نهاية صغرى (-EL).

الخيار التالي متاح عندما يُضبط as لمعالج Visium.

-mtune=المعمارية
    يحدد هذا الخيار المعمارية المستهدفة. إذا أُجريت محاولة لتجميع تعليمات لن تُنفذ على المعمارية المستهدفة، فسيصدر المجمّع رسالة خطأ.

    تُعرف الأسماء التالية: "mcm24" و "mcm" و "gr5" و "gr6"

الخيارات التالية متاحة عندما يُضبط as لمعالج Xtensa.

--text-section-literals | --no-text-section-literals
    التحكم في معالجة تجمعات الثوابت الحرفية (literal pools). المبدئي هو --no-text-section-literals، والذي يضع الثوابت في أقسام منفصلة في ملف المخرجات. هذا يسمح بوضع تجمع الثوابت في ذاكرة بيانات RAM/ROM. مع --text-section-literals، تُنثر الثوابت في قسم النص لإبقائها قريبة بقدر الإمكان من مراجعها. قد يكون هذا ضرورياً لملفات التجميع الكبيرة، حيث قد تكون الثوابت بخلاف ذلك خارج نطاق تعليمات "L32R" في قسم النص. تُجمع الثوابت في تجمعات تتبع توجيهات ".literal_position" أو تسبق تعليمات "ENTRY". تؤثر هذه الخيارات فقط على الثوابت التي يُرجع إليها عبر تعليمات "L32R" النسبية لعداد البرنامج (PC-relative)؛ أما الثوابت لتعليمات "L32R" في الوضع المطلق فتُعالج بشكل منفصل.

--auto-litpools | --no-auto-litpools
    التحكم في معالجة تجمعات الثوابت الحرفية. المبدئي هو --no-auto-litpools، والذي في حالة غياب --text-section-literals يضع الثوابت في أقسام منفصلة في ملف المخرجات. هذا يسمح بوضع تجمع الثوابت في ذاكرة بيانات RAM/ROM. مع --auto-litpools، تُنثر الثوابت في قسم النص لإبقائها قريبة بقدر الإمكان من مراجعها، ولا تكون توجيهات ".literal_position" الصريحة مطلوبة. قد يكون هذا ضرورياً للدوال الكبيرة جداً، حيث قد لا يمكن الوصول إلى تجمع ثوابت واحد في بداية الدالة بواسطة تعليمات "L32R" في نهايتها. تؤثر هذه الخيارات فقط على الثوابت التي يُرجع إليها عبر تعليمات "L32R" النسبية لعداد البرنامج؛ أما الثوابت لتعليمات "L32R" في الوضع المطلق فتُعالج بشكل منفصل. عند استخدامه مع --text-section-literals، تكون للأولوية لـ --auto-litpools.

--absolute-literals | --no-absolute-literals
    الإشارة للمجمّع ما إذا كانت تعليمات "L32R" تستخدم العنونة المطلقة أم النسبية لعداد البرنامج. إذا كان المعالج يتضمن خيار العنونة المطلقة، فإن المبدئي هو استخدام عمليات إعادة التوطين (relocations) المطلقة لـ "L32R". بخلاف ذلك، يمكن فقط استخدام عمليات إعادة التوطين لـ "L32R" النسبية لعداد البرنامج.

--target-align | --no-target-align
    تمكين أو تعطيل المحاذاة الآلية لتقليل عقوبات التفريع على حساب حجم الكود قليلاً. هذا التحسين مُمكّن بشكل مبدئي. لاحظ أن المجمّع سيقوم دائماً بمحاذاة التعليمات مثل "LOOP" التي لها متطلبات محاذاة ثابتة.

--longcalls | --no-longcalls
    تمكين أو تعطيل تحويل تعليمات الاستدعاء للسماح بالاستدعاءات عبر نطاق أكبر من العناوين. يجب استخدام هذا الخيار عندما يحتمل أن تكون أهداف الاستدعاء خارج النطاق. قد يؤدي ذلك لتدهور في حجم الكود والأداء، ولكن يمكن للواصل عموماً تحسين العبء غير الضروري عندما ينتهي الاستدعاء داخل النطاق. المبدئي هو --no-longcalls.

--transform | --no-transform
    تمكين أو تعطيل جميع تحويلات المجمّع لتعليمات Xtensa، بما في ذلك تحسينات الوصل (relaxation) والتحسينات الأخرى. المبدئي هو --transform؛ ويجب عدم استخدام --no-transform إلا في الحالات النادرة التي يجب فيها أن تكون التعليمات تماماً كما وردت في مصدر التجميع. استخدام --no-transform يجعل معاملات التعليمات الخارجة عن النطاق تظهر كأخطاء.

--rename-section الاسم_القديم=الاسم_الجديد
    إعادة تسمية القسم الاسم_القديم إلى الاسم_الجديد. يمكن استخدام هذا الخيار عدة مرات لإعادة تسمية أقسام متعددة.

--trampolines | --no-trampolines
    تمكين أو تعطيل تحويل تعليمات القفز للسماح بالقفزات عبر نطاق أكبر من العناوين. يجب استخدام هذا الخيار عندما يحتمل أن تكون أهداف القفز خارج النطاق. في حالة غياب مثل هذه القفزات، لا يؤثر هذا الخيار على حجم الكود أو الأداء. المبدئي هو --trampolines.

--abi-windowed | --abi-call0
    اختر وسم ABI المكتوب في قسم ".xtensa.info". يشير وسم ABI إلى واجهة التطبيق الثنائية (ABI) لكود التجميع. يُصدِر الرابط تحذيرًا عند محاولة ربط ملفات كائنية بـ أوسمة ABI غير متوافقة. يُختار ABI المبدئي بواسطة ضبط نواة Xtensa.

الخيارات التالية متاحة عندما يُضبط as لمعالج Z80.

@chapter المزايا المعتمدة على Z80

  خيارات سطر الأوامر

-march=CPU[-EXT...][+EXT...]
    يحدد هذا الخيار المعالج المستهدف. سيُصدر المجمّع رسالة خطأ إذا وُجدت محاولة لتجميع تعليمة لن تعمل على المعالج المستهدف. أسماء المعالجات التالية مدعومة: "z80"، و "z180"، و "ez80"، و "gbz80"، و "z80n"، و "r800". بالإضافة إلى مجموعة التعليمات الأساسية، يمكن إخبار المجمّع بقبول بعض اختصارات الامتدادات. على سبيل المثال، "-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".

-local-prefix=prefix
    ميّز كل اللصائق التي لها البادئة المحددة بأنها محلية. ولكن يمكن تمييز مثل هذه اللصيقة بأنها عالمية صراحةً في الكود. لا يغير هذا الخيار بادئة اللصيقة المحلية المبدئية ".L"، بل يضيف واحدة جديدة فقط.

-colonless
    اقبل اللصائق الخالية من النقطتين الرأسيتين. تُعامل كل الرموز في بداية السطر كلصائق.

-sdcc
    اقبل كود التجميع المُنتج بواسطة SDCC.

-fp-s=FORMAT
    تنسيق أرقام الفاصلة العائمة أحادية الدقة. المبدئي: ieee754 (32 بت).

-fp-d=FORMAT
    تنسيق أرقام الفاصلة العائمة مزدوجة الدقة. المبدئي: ieee754 (64 بت).

انظر أيضًا
gcc(1)، و ld(1)، ومدخلات Info لـ binutils و ld.

حقوق النسخ
حقوق الطبع والنشر (c) لعام 1991-2026 لمؤسسة البرمجيات الحرة، المحدودة.

يُمنح الإذن بنسخ وتوزيع و/أو تعديل هذا المستند بموجب شروط رخصة جنو للوثائق الحرة (GNU Free Documentation License)، الإصدار 1.3 أو أي إصدار لاحق تنشره مؤسسة البرمجيات الحرة؛ مع عدم وجود أقسام ثابتة، وبدون نصوص غلاف أمامي، وبدون نصوص غلاف خلفي. نُسخة من الرخصة مضمنة في القسم المعنون "GNU Free Documentation License".

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.