as - คู่มืออ้างอิง ตัวเลือก ตัวอย่างคำสั่ง


ชื่อ

as AS - แอสเซมเบลอร์ GNU แบบพกพา

เรื่องย่อ

as [-a[cdghlns][=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] [--hash-size=N] [--help] [--target-help] [-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] [--sectname-subst] [--size-check=[error|warning]] [--statistics] [-v] [-version] [--version] [-W] [--warn] [--fatal-warnings] [-w] [-x] [-Z] [@FILE] [target-options] [--|files ...]

เป้า

กำหนดเป้าหมายตัวเลือก AArch64:

[-EB|-EL] [-mabi=ABI]

กำหนดเป้าหมายตัวเลือกอัลฟ่า:

[-mcpu] [-mdebug | -no-mdebug] [-replace | -noreplace] [-relax] [-g] [-Gsize] [-F] [-32addr]

ตัวเลือก ARC เป้าหมาย:

[-mcpu=cpu] [-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS] [-mcode-density] [-mrelax] [-EB|-EL]

ตัวเลือก ARM เป้าหมาย:

[-mcpu=processor[+extension...]] [-march=architecture[+extension...]] [-mfpu=floating-point-format] [-mfloat-abi=abi] [-meabi=ver] [-mthumb] [-EB|-EL] [-mapcs-32|-mapcs-26|-mapcs-float| -mapcs-reentrant] [-mthumb-interwork] [-k]

กำหนดเป้าหมายตัวเลือก Blackfin:

[-mcpu=processor[-sirevision]] [-mfdpic] [-mno-fdpic] [-mnopic]

กำหนดเป้าหมายตัวเลือก BPF:

[-EL] [-EB]

กำหนดเป้าหมายตัวเลือก CRIS:

[--underscore | --no-underscore] [--pic] [-N] [--emulation=criself | --emulation=crisaout] [--march=v0_v10 | --march=v10 | --march=v32 | --march=common_v10_v32]

กำหนดเป้าหมายตัวเลือก C-SKY:

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

กำหนดเป้าหมายตัวเลือก D10V:

[-O]

กำหนดเป้าหมายตัวเลือก D30V:

[-O|-n|-N]

กำหนดเป้าหมายตัวเลือก EPIPHANY:

[-mepiphany|-mepiphany16]

กำหนดเป้าหมาย H8/300 ตัวเลือก:

[-h-tick-hex]

ตัวเลือก i386 เป้าหมาย:

[--32|--x32|--64] [-n] [-march=CPU[+EXTENSION...]] [-mtune=CPU]

ตัวเลือกเป้าหมาย IA-64:

[-mconstant-gp|-mauto-pic] [-milp32|-milp64|-mlp64|-mp64] [-mle|mbe] [-mtune=itanium1|-mtune=itanium2] [-munwind-check=warning|-munwind-check=error] [-mhint.b=ok|-mhint.b=warning|-mhint.b=error] [-x|-xexplicit] [-xauto] [-xdebug]

ตัวเลือก IP2K เป้าหมาย:

[-mip2022|-mip2022ext]

กำหนดเป้าหมายตัวเลือก M32C:

[-m32c|-m16c] [-relax] [-h-tick-hex]

กำหนดเป้าหมายตัวเลือก M32R:

[--m32rx|--[no-]warn-explicit-parallel-conflicts| --W[n]p]

กำหนดเป้าหมายตัวเลือก M680X0:

[-l] [-m68000|-m68010|-m68020|...]

ตัวเลือกเป้าหมาย M68HC11:

[-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg] [-mshort|-mlong] [-mshort-double|-mlong-double] [--force-long-branches] [--short-branches] [--strict-direct-mode] [--print-insn-syntax] [--print-opcodes] [--generate-example]

กำหนดเป้าหมายตัวเลือก MCORE:

[-jsri2bsr] [-sifilter] [-relax] [-mcpu=[210|340]]

ตัวเลือก Meta เป้าหมาย:

[-mcpu=cpu] [-mfpu=cpu] [-mdsp=cpu] 

ตัวเลือก MICROBLAZE เป้าหมาย:

ตัวเลือก 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]

ตัวเลือกเป้าหมาย Nios II:

[-relax-all] [-relax-section] [-no-relax] [-EB] [-EL]

กำหนดเป้าหมายตัวเลือก 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] [-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]

ตัวเลือกคะแนนเป้าหมาย:

[-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]

คำอธิบาย

GNU เนื่องจาก เป็นตระกูลแอสเซมเบลอร์จริงๆ หากคุณใช้ (หรือเคยใช้) แอสเซมเบลอร์ GNU บนสถาปัตยกรรมหนึ่ง คุณควรพบสภาพแวดล้อมที่ค่อนข้างคล้ายกันเมื่อคุณใช้กับสถาปัตยกรรมอื่น แต่ละเวอร์ชันมีหลายอย่างเหมือนกันกับเวอร์ชันอื่นๆ รวมถึงรูปแบบไฟล์วัตถุ คำสั่งแอสเซมเบลอร์ส่วนใหญ่ (มักเรียกว่า pseudo-ops) และไวยากรณ์แอสเซมเบลอร์

เนื่องจาก มีวัตถุประสงค์หลักเพื่อรวบรวมเอาต์พุตของคอมไพเลอร์ GNU C gcc เพื่อใช้งานโดยตัวเชื่อมโยง ld อย่างไรก็ตาม เราได้พยายามทำให้เป็นการประกอบอย่างถูกต้องทุกอย่างที่ผู้ประกอบอื่นๆ สำหรับเครื่องเดียวกันจะประกอบ มีการบันทึกข้อยกเว้นไว้อย่างชัดเจน ไม่ได้หมายความว่า เป็น จะใช้ไวยากรณ์เดียวกันกับแอสเซมเบลอร์อื่นสำหรับสถาปัตยกรรมเดียวกันเสมอ ตัวอย่างเช่น เราทราบไวยากรณ์ภาษาแอสเซมบลี 680x0 หลายเวอร์ชันที่เข้ากันไม่ได้

แต่ละครั้งที่คุณเรียกใช้ เป็น โปรแกรมจะรวบรวมโปรแกรมต้นทางเพียงโปรแกรมเดียว โปรแกรมต้นทางประกอบด้วยไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไป (อินพุตมาตรฐานยังเป็นไฟล์)

คุณกำหนด เป็น บรรทัดคำสั่งที่มีชื่อไฟล์อินพุตเป็นศูนย์หรือมากกว่านั้น ไฟล์อินพุตจะถูกอ่าน (จากชื่อไฟล์ซ้ายไปขวา) อาร์กิวเมนต์บรรทัดคำสั่ง (ในตำแหน่งใดก็ได้) ที่ไม่มีความหมายพิเศษจะถือเป็นชื่อไฟล์อินพุต

หากคุณระบุชื่อไฟล์ เป็น ระบบจะพยายามอ่านไฟล์อินพุตหนึ่งไฟล์จากอินพุตมาตรฐาน เป็น ซึ่งโดยปกติแล้วจะเป็นเทอร์มินัลของคุณ คุณอาจต้องพิมพ์ ctl-D เพื่อแจ้งว่า เนื่องจาก ไม่มีโปรแกรมให้ประกอบอีกต่อไป

ใช้ -- หากคุณต้องการตั้งชื่อไฟล์อินพุตมาตรฐานอย่างชัดเจนในบรรทัดคำสั่งของคุณ

หากแหล่งที่มาว่างเปล่า เป็น จะสร้างไฟล์อ็อบเจกต์ว่างขนาดเล็ก

เนื่องจาก อาจเขียนคำเตือนและข้อความแสดงข้อผิดพลาดไปยังไฟล์ข้อผิดพลาดมาตรฐาน (โดยปกติจะเป็นเทอร์มินัลของคุณ) สิ่งนี้ไม่ควรเกิดขึ้นเมื่อคอมไพเลอร์ทำงาน เป็น โดยอัตโนมัติ คำเตือนจะรายงานข้อสันนิษฐานที่เป็นที่สามารถประกอบโปรแกรมที่มีข้อบกพร่องต่อไปได้ ข้อผิดพลาดรายงานปัญหาร้ายแรงที่ทำให้แอสเซมบลีหยุดทำงาน

หากคุณกำลังเรียกใช้ เป็น ผ่านคอมไพเลอร์ GNU C คุณสามารถใช้ตัวเลือก -Wa เพื่อส่งอาร์กิวเมนต์ไปยังแอสเซมเบลอร์ ต้องแยกอาร์กิวเมนต์แอสเซมเบลอร์ออกจากกัน (และ -Wa) ด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น:

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

ซึ่งส่งผ่านสองตัวเลือกไปยังแอสเซมเบลอร์: -alh (ส่งรายการไปยังเอาต์พุตมาตรฐานที่มีระดับสูงและแหล่งแอสเซมบลี) และ -L (เก็บสัญลักษณ์ในเครื่องไว้ในตารางสัญลักษณ์ ).

โดยปกติแล้ว คุณไม่จำเป็นต้องใช้กลไก -Wa นี้ เนื่องจากตัวเลือกบรรทัดคำสั่งของคอมไพเลอร์จำนวนมากจะถูกส่งผ่านไปยังแอสเซมเบลอร์โดยอัตโนมัติโดยคอมไพเลอร์ (คุณสามารถเรียกใช้ไดรเวอร์คอมไพเลอร์ GNU ด้วยตัวเลือก -v เพื่อดูว่าตัวเลือกใดบ้างที่ส่งผ่านไปยังแต่ละคอมไพล์พาส รวมทั้งแอสเซมเบลอร์ด้วย)

ตัวเลือก

  1. อ่านตัวเลือกบรรทัดคำสั่งจาก ไฟล์ ตัวเลือกที่อ่านจะถูกแทรกแทนที่ตัวเลือก @ไฟล์ ดั้งเดิม หากไม่มี ไฟล์ หรือไม่สามารถอ่านได้ ตัวเลือกดังกล่าวจะถือว่าตรงตามตัวอักษรและไม่ถูกลบออก ตัวเลือกใน ไฟล์ คั่นด้วยช่องว่าง อักขระช่องว่างอาจรวมอยู่ในตัวเลือกโดยล้อมรอบตัวเลือกทั้งหมดในเครื่องหมายคำพูดเดี่ยวหรือคู่ อักขระใดๆ (รวมถึงเครื่องหมายแบ็กสแลช) อาจรวมไว้โดยนำหน้าอักขระที่จะรวมด้วยเครื่องหมายแบ็กสแลช ตัว ไฟล์ อาจมีตัวเลือก @ไฟล์ เพิ่มเติม; ตัวเลือกดังกล่าวจะถูกประมวลผลซ้ำ

-a[cdghlmns]

เปิดรายการด้วยวิธีต่างๆ ดังต่อไปนี้

-ac

ละเว้นเงื่อนไขที่เป็นเท็จ

-ad

ละเว้นคำสั่งการดีบัก

-ag

รวมถึงข้อมูลทั่วไป เช่น รุ่นและตัวเลือกที่ส่งผ่าน

-ah

รวมแหล่งที่มาระดับสูง

-al

รวมถึงการประกอบ

-am

รวมถึงการขยายมาโคร

-an

ละเว้นการประมวลผลแบบฟอร์ม

-as

รวมถึงสัญลักษณ์

=file

ตั้งชื่อไฟล์รายการ

คุณอาจรวมตัวเลือกเหล่านี้ ตัวอย่างเช่น ใช้ -aln สำหรับรายการแอสเซมบลีโดยไม่ต้องประมวลผลแบบฟอร์ม ถ้าใช้ตัวเลือก =file จะต้องเป็นตัวสุดท้าย โดยตัวมันเอง -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 old=new

เมื่อรวบรวมไฟล์ในไดเร็กทอรี เก่า ให้บันทึกข้อมูลการดีบักโดยอธิบายเป็น ใหม่ แทน

--defsym sym=value

กำหนดสัญลักษณ์ sym เป็น value ก่อนประกอบไฟล์อินพุต ค่า ต้องเป็นค่าคงที่จำนวนเต็ม เช่นเดียวกับในภาษา C เครื่องหมาย 0x ที่นำหน้าหมายถึงค่าเลขฐานสิบหก และเครื่องหมาย 0 ที่นำหน้าหมายถึงค่าเลขฐานแปด ค่าของสัญลักษณ์สามารถถูกแทนที่ภายในซอร์สไฟล์ได้โดยใช้ .set pseudo-op

--dump-config

แสดงวิธีการกำหนดค่าแอสเซมเบลอร์แล้วออก

--elf-stt-common=no
--elf-stt-common=yes

ตัวเลือกเหล่านี้ควบคุมว่าแอสเซมเบลอร์ ELF ควรสร้างสัญลักษณ์ทั่วไปที่มีประเภท STT_COMMON หรือไม่ ค่าเริ่มต้นสามารถควบคุมได้ด้วยตัวเลือกการกำหนดค่า --enable-elf-stt-common

--emulation=name

หากแอสเซมเบลอร์ได้รับการกำหนดค่าให้รองรับการกำหนดค่าเป้าหมายที่แตกต่างกันหลายรายการ จะสามารถใช้ตัวเลือกนี้เพื่อเลือกแบบฟอร์มที่ต้องการได้

-f

รวดเร็ว --- ข้ามช่องว่างและการประมวลผลความคิดเห็นล่วงหน้า (สมมติว่าแหล่งที่มาคือเอาต์พุตของคอมไพเลอร์)

-g
--gen-debug

สร้างข้อมูลการดีบักสำหรับแต่ละบรรทัดของแอสเซมเบลอร์โดยใช้รูปแบบการดีบักที่เป้าหมายต้องการ ปัจจุบันหมายถึง STABS, ECOFF หรือ DWARF2 เมื่อรูปแบบการดีบักเป็น DWARF ส่วน .debug_info และ .debug_line จะถูกปล่อยออกมาเฉพาะเมื่อไฟล์แอสเซมบลีไม่ได้สร้างเอง

--gstabs

สร้างข้อมูลการดีบักแทงสำหรับแต่ละสายแอสเซมเบลอร์ นี่อาจช่วยแก้จุดบกพร่องรหัสแอสเซมเบลอร์ ถ้าดีบักเกอร์สามารถจัดการได้

--gstabs+

สร้างข้อมูลการดีบั๊กการแทงสำหรับแต่ละสายแอสเซมเบลอร์ ด้วยส่วนขยาย GNU ที่อาจมีเพียง gdb เท่านั้นที่สามารถจัดการได้ และนั่นอาจทำให้ดีบักเกอร์อื่นๆ หยุดทำงานหรือปฏิเสธที่จะอ่านโปรแกรมของคุณ สิ่งนี้อาจช่วยแก้ไขรหัสแอสเซมเบลอร์ ขณะนี้ส่วนขยาย GNU เพียงตำแหน่งเดียวคือตำแหน่งของไดเร็กทอรีการทำงานปัจจุบัน ณ เวลาการประกอบ

--gdwarf-2

สร้างข้อมูลการดีบัก DWARF2 สำหรับแต่ละสายแอสเซมเบลอร์ นี่อาจช่วยแก้จุดบกพร่องรหัสแอสเซมเบลอร์ ถ้าดีบักเกอร์สามารถจัดการได้ หมายเหตุ---ตัวเลือกนี้รองรับเฉพาะบางเป้าหมายเท่านั้น ไม่ใช่ทั้งหมด

--gdwarf-3

ตัวเลือกนี้เหมือนกับตัวเลือก --gdwarf-2 ยกเว้นว่าจะอนุญาตให้สร้างข้อมูลการดีบักเพิ่มเติมตามข้อกำหนด DWARF รุ่น 3 หมายเหตุ - การเปิดใช้งานตัวเลือกนี้ไม่ได้รับประกันการสร้างข้อมูลเพิ่มเติมใดๆ ทางเลือกในการทำเช่นนั้นขึ้นอยู่กับเป้าหมายแต่ละราย

--gdwarf-4

ตัวเลือกนี้เหมือนกับตัวเลือก --gdwarf-2 ยกเว้นว่าจะอนุญาตให้สร้างข้อมูลการดีบักเพิ่มเติมตามข้อกำหนด DWARF เวอร์ชัน 4 หมายเหตุ - การเปิดใช้งานตัวเลือกนี้ไม่ได้รับประกันการสร้างข้อมูลเพิ่มเติมใดๆ ทางเลือกในการทำเช่นนั้นขึ้นอยู่กับเป้าหมายแต่ละราย

--gdwarf-5

ตัวเลือกนี้เหมือนกับตัวเลือก --gdwarf-2 ยกเว้นว่าจะอนุญาตให้สร้างข้อมูลการดีบักเพิ่มเติมตามข้อกำหนด DWARF เวอร์ชัน 5 หมายเหตุ - การเปิดใช้งานตัวเลือกนี้ไม่ได้รับประกันการสร้างข้อมูลเพิ่มเติมใดๆ ทางเลือกในการทำเช่นนั้นขึ้นอยู่กับเป้าหมายแต่ละราย

--gdwarf-sections

แทนที่จะสร้างส่วน .debug_line ให้สร้างชุดของส่วน .debug_line.foo โดยที่ foo เป็นชื่อของส่วนโค้ดที่เกี่ยวข้อง ตัวอย่างเช่น ส่วนโค้ดที่ชื่อ .text.func จะมีข้อมูลหมายเลขบรรทัดแคระอยู่ในส่วนชื่อ .debug_line.text.func หากส่วนรหัสเรียกว่า .text ส่วนของบรรทัดการแก้ไขข้อบกพร่องจะยังคงเรียกเพียง .debug_line โดยไม่มีส่วนต่อท้าย

--gdwarf-cie-version=version

ควบคุมเวอร์ชันของรายการข้อมูลทั่วไป (CIE) ของ DWARF ที่ผลิตขึ้น เมื่อไม่ได้ระบุแฟล็กนี้ ค่าดีฟอลต์คือเวอร์ชัน 1 แม้ว่าบางเป้าหมายสามารถแก้ไขค่าดีฟอลต์นี้ได้ ค่าอื่นๆ ที่เป็นไปได้สำหรับ เวอร์ชัน คือ 3 หรือ 4

--generate-missing-build-notes=yes
--generate-missing-build-notes=no

ตัวเลือกเหล่านี้ควบคุมว่าแอสเซมเบลอร์ ELF ควรสร้างบันทึกแอตทริบิวต์ GNU Build หรือไม่ หากไม่มีอยู่ในแหล่งอินพุต ค่าเริ่มต้นสามารถควบคุมได้โดยตัวเลือกกำหนดค่า --enable-generate-build-notes

--gsframe
--gsframe

สร้างส่วน .sframe จากคำสั่ง CFI

--hash-size N

ละเว้น รองรับความเข้ากันได้ของบรรทัดคำสั่งกับแอสเซมเบลอร์อื่น ๆ

--help

พิมพ์สรุปตัวเลือกบรรทัดคำสั่งและออก

--target-help

พิมพ์สรุปตัวเลือกและทางออกเฉพาะเป้าหมายทั้งหมด

-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

ตั้งค่าความกว้างสูงสุดของบรรทัดอินพุตตามที่แสดงในรายการ เป็น จำนวน ไบต์

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

ตั้งชื่อเอาต์พุตไฟล์วัตถุจาก เป็น objfile

-R

พับส่วนข้อมูลลงในส่วนข้อความ

--reduce-memory-overheads

ละเว้น รองรับความเข้ากันได้กับเครื่องมือที่ใช้ตัวเลือกเดียวกันกับทั้งแอสเซมเบลอร์และลิงเกอร์

--sectname-subst

ให้เกียรติลำดับการแทนที่ในชื่อส่วน

--size-check=error
--size-check=warning

ออกข้อผิดพลาดหรือคำเตือนสำหรับคำสั่ง ELF .size ที่ไม่ถูกต้อง

--statistics

พิมพ์พื้นที่สูงสุด (เป็นไบต์) และเวลาทั้งหมด (เป็นวินาที) ที่ใช้โดยแอสเซมบลี

--strip-local-absolute

ลบสัญลักษณ์สัมบูรณ์ในเครื่องออกจากตารางสัญลักษณ์ขาออก

-v
-version

พิมพ์เวอร์ชัน เป็น

--version

พิมพ์เวอร์ชัน เป็น แล้วออก

-W
--no-warn

ระงับข้อความเตือน

--fatal-warnings

ถือว่าคำเตือนเป็นข้อผิดพลาด

--warn

อย่าระงับข้อความเตือนหรือถือว่าเป็นข้อผิดพลาด

-w

ละเว้น

-x

ละเว้น

-Z

สร้างไฟล์ออบเจกต์แม้หลังจากเกิดข้อผิดพลาด

-- | files ...

อินพุตมาตรฐานหรือไฟล์ต้นฉบับเพื่อประกอบ

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโหมด 64 บิตของสถาปัตยกรรม 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-a710 , ares, exynos-m1, falkor, neoverse-n1, neoverse- n2, neoverse-e1, neoverse-v1, qdf24xx, saphira, thunderx , วัลแคน, xgene1 xgene2, cortex-r82, cortex-x1 และ <รหัส>cortex-x2

อาจใช้ชื่อพิเศษ all เพื่อให้แอสเซมเบลอร์ยอมรับคำสั่งที่ใช้ได้สำหรับโปรเซสเซอร์ใดๆ ที่รองรับ รวมถึงส่วนขยายเพิ่มเติมทั้งหมด นอกเหนือจากชุดคำสั่งพื้นฐานแล้ว แอสเซมเบลอร์สามารถบอกให้ยอมรับ หรือจำกัด ตัวช่วยจำส่วนขยายต่างๆ ที่ขยายโปรเซสเซอร์ หากการใช้งานโปรเซสเซอร์บางตัวสามารถมีส่วนขยายได้ ส่วนขยายเหล่านั้นจะถูกเปิดใช้งานโดยอัตโนมัติ ดังนั้น คุณจึงไม่จำเป็นต้องระบุนามสกุลเพิ่มเติมใดๆ

-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-r, armv9-a, armv9.1- ก, armv9.2-a และ armv9.3-a หากระบุทั้ง -mcpu และ -march แอสเซมเบลอร์จะใช้การตั้งค่าสำหรับ -mcpu หากไม่ได้ระบุไว้ แอสเซมเบลอร์จะมีค่าเริ่มต้นเป็น -mcpu=all ตัวเลือกสถาปัตยกรรมสามารถขยายได้ด้วยตัวเลือกส่วนขยายชุดคำสั่งเดียวกันกับตัวเลือก -mcpu ซึ่งแตกต่างจาก -mcpu ส่วนขยายไม่ได้เปิดใช้งานตามค่าเริ่มต้นเสมอ

-mverbose-error

ตัวเลือกนี้เปิดใช้งานข้อความแสดงข้อผิดพลาดอย่างละเอียดสำหรับก๊าซ AArch64 ตัวเลือกนี้เปิดใช้งานตามค่าเริ่มต้น

-mno-verbose-error

ตัวเลือกนี้ปิดใช้งานข้อความแสดงข้อผิดพลาดอย่างละเอียดในก๊าซ AArch64

ตัวเลือกต่อไปนี้จะใช้งานได้เมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ 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 สำหรับคำสั่งการแทงและตัวอธิบายขั้นตอน ค่าเริ่มต้นคือเปิดใช้งาน .mdebug โดยอัตโนมัติเมื่อเห็นคำสั่งการแทงครั้งแรก

-relax

ตัวเลือกนี้บังคับให้ใส่การย้ายตำแหน่งทั้งหมดลงในไฟล์วัตถุ แทนที่จะประหยัดพื้นที่และแก้ไขการย้ายตำแหน่งบางส่วนในเวลาประกอบ โปรดทราบว่าตัวเลือกนี้ไม่ได้เผยแพร่เลขคณิตของสัญลักษณ์ทั้งหมดลงในไฟล์อ็อบเจ็กต์ เนื่องจากไม่สามารถแสดงเลขคณิตของสัญลักษณ์ทั้งหมดได้ อย่างไรก็ตาม ตัวเลือกนี้ยังคงมีประโยชน์ในการใช้งานบางอย่าง

-replace
-noreplace

เปิดใช้งานหรือปิดใช้งานการปรับให้เหมาะสมของการเรียกโพรซีเดอร์ ทั้งที่แอสเซมบลาจและเวลาลิงก์ ตัวเลือกเหล่านี้ใช้ได้เฉพาะกับเป้าหมาย VMS และ -replace เป็นค่าเริ่มต้น ดูหัวข้อ 1.4.1 ของคู่มือยูทิลิตี้ OpenVMS Linker

-g

ตัวเลือกนี้ใช้เมื่อคอมไพเลอร์สร้างข้อมูลการดีบัก เมื่อ gcc ใช้ mips-tfile เพื่อสร้างข้อมูลการแก้ไขข้อบกพร่องสำหรับ ECOFF ป้ายกำกับในเครื่องจะต้องส่งผ่านไปยังไฟล์วัตถุ มิฉะนั้นตัวเลือกนี้จะไม่มีผล

-Gsize

สัญลักษณ์ทั่วไปในเครื่องที่ใหญ่กว่า ขนาด จะอยู่ใน .bss ในขณะที่สัญลักษณ์ที่เล็กกว่าจะอยู่ใน .sbss

-F
-32addr

ตัวเลือกเหล่านี้จะถูกละเว้นสำหรับความเข้ากันได้แบบย้อนหลัง

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ ARC

-mcpu=cpu

ตัวเลือกนี้เลือกตัวแปรโปรเซสเซอร์หลัก

-EB | -EL

เลือกเอาต์พุต big-endian (-EB) หรือ little-endian (-EL)

-mcode-density

เปิดใช้งานคำแนะนำส่วนขยายความหนาแน่นของโค้ด

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับตระกูลโปรเซสเซอร์ ARM

-mcpu=processor[+extension...]

ระบุว่าตัวแปรโปรเซสเซอร์ ARM ใดเป็นเป้าหมาย

-march=architecture[+extension...]

ระบุว่าตัวแปรสถาปัตยกรรม ARM ใดที่เป้าหมายใช้

-mfpu=floating-point-format

เลือกสถาปัตยกรรม Floating Point ที่เป็นเป้าหมาย

-mfloat-abi=abi

เลือกจุดลอยตัว ABI ที่ใช้งานอยู่

-mthumb

เปิดใช้งานการถอดรหัสคำสั่ง Thumb only

-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant

เลือกแบบแผนการเรียกโพรซีเดอร์ที่ใช้อยู่

-EB | -EL

เลือกเอาต์พุต big-endian (-EB) หรือ little-endian (-EL)

-mthumb-interwork

ระบุว่ารหัสถูกสร้างขึ้นโดยคำนึงถึงการทำงานร่วมกันระหว่างรหัส Thumb และ ARM

-mccs

เปิดโหมดความเข้ากันได้ทางไวยากรณ์ของแอสเซมบลี CodeComposer Studio

-k

ระบุว่ารหัส PIC ถูกสร้างขึ้น

ตัวเลือกต่อไปนี้จะใช้งานได้เมื่อมีการกำหนดค่าสำหรับตระกูลโปรเซสเซอร์ 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

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับตระกูลตัวประมวลผล BPF ของเคอร์เนล Linux

@chapter คุณลักษณะขึ้นอยู่กับ BPF

ตัวเลือก

-EB

ตัวเลือกนี้ระบุว่าแอสเซมเบลอร์ควรปล่อย eBPF ระดับบิ๊กเอนด์

-EL

ตัวเลือกนี้ระบุว่าแอสเซมเบลอร์ควรปล่อย eBPF ที่จบน้อย

โปรดทราบว่าหากไม่มีการระบุอ็อพชัน endianness ในบรรทัดคำสั่ง ระบบจะใช้ endianness ของโฮสต์ ดูหน้าข้อมูลสำหรับเอกสารประกอบของตัวเลือกเฉพาะ CRIS

ตัวเลือกต่อไปนี้จะใช้งานได้เมื่อมีการกำหนดค่าสำหรับตระกูลโปรเซสเซอร์ C-SKY

-march=archname

รวบรวมสถาปัตยกรรม archname ตัวเลือก --help แสดงค่าที่ถูกต้องสำหรับ archname

-mcpu=cpuname

ประกอบสถาปัตยกรรม cpuname ตัวเลือก --help แสดงค่าที่ถูกต้องสำหรับ cpuname

-EL
-mlittle-endian

สร้างเอาต์พุตแบบ little-endian

-EB
-mbig-endian

สร้างผลผลิตระดับบิ๊กเอนด์

-fpic
-pic

สร้างรหัสที่ไม่ขึ้นกับตำแหน่ง

-mljump
-mno-ljump

เปิด/ปิดการแปลงคำสั่งสาขาแบบสั้น jbf, jbt และ jbr เป็น jmpi ตัวเลือกนี้ใช้สำหรับโปรเซสเซอร์ V2 เท่านั้น มันถูกละเว้นบนเป้าหมาย CK801 และ CK802 ซึ่งไม่สนับสนุนคำสั่ง jmpi และเปิดใช้งานตามค่าเริ่มต้นสำหรับโปรเซสเซอร์อื่น

-mbranch-stub
-mno-branch-stub

ส่งผ่านการย้ายตำแหน่ง R_CKCORE_PCREL_IMM26BY2 สำหรับคำสั่ง bsr ไปยังตัวเชื่อมโยง ตัวเลือกนี้ใช้ได้เฉพาะกับเป้าหมาย C-SKY V2 ELF แบบ Bare-Metal ซึ่งเปิดใช้งานโดยค่าเริ่มต้น ไม่สามารถใช้ในรหัสที่จะเชื่อมโยงแบบไดนามิกกับไลบรารีที่ใช้ร่วมกัน

-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-series

-mlaf
-mliterals-after-func
-mno-laf
-mno-literals-after-func

เปิด/ปิดการวางตำแหน่งของสระตามตัวอักษรหลังจากแต่ละฟังก์ชัน

-mlabr
-mliterals-after-br
-mno-labr
-mnoliterals-after-br

เปิด/ปิดการวางตำแหน่งของกลุ่มตัวอักษรหลังจากสาขาที่ไม่มีเงื่อนไข ตัวเลือกนี้เปิดใช้งานตามค่าเริ่มต้น

-mistack
-mno-istack

เปิด/ปิดคำแนะนำการขัดจังหวะสแตก ตัวเลือกนี้เปิดใช้งานตามค่าเริ่มต้นบนโปรเซสเซอร์ CK801, CK802 และ CK802

ตัวเลือกต่อไปนี้เปิดใช้คำแนะนำเพิ่มเติมบางอย่างอย่างชัดเจน คุณลักษณะเหล่านี้เปิดใช้งานโดยปริยายโดยใช้ -mcpu= เพื่อระบุโปรเซสเซอร์ที่สนับสนุน

-mhard-float

เปิดใช้คำสั่งฮาร์ดโฟลต

-mmp

เปิดใช้งานคำสั่งมัลติโปรเซสเซอร์

-mcp

เปิดใช้งานคำสั่งตัวประมวลผลร่วม

-mcache

เปิดใช้งานคำสั่งดึงแคชล่วงหน้า

-msecurity

เปิดใช้งานคำแนะนำด้านความปลอดภัย C-SKY

-mtrust

เปิดใช้งานคำแนะนำความน่าเชื่อถือ C-SKY

-mdsp

เปิดใช้งานคำแนะนำ DSP

-medsp

เปิดใช้งานคำแนะนำ DSP ที่ปรับปรุงแล้ว

-mvdsp

เปิดใช้งานคำสั่งเวกเตอร์ DSP

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ Epiphany

-mepiphany

ระบุว่าอนุญาตให้ใช้ทั้งคำสั่ง 32 และ 16 บิต นี่คือลักษณะการทำงานเริ่มต้น

-mepiphany16

จำกัดคำสั่งที่อนุญาตไว้ที่ชุด 16 บิตเท่านั้น

ตัวเลือกต่อไปนี้จะใช้งานได้เมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ H8/300 @chapter คุณลักษณะขึ้นอยู่กับ H8/300

ตัวเลือก

as เวอร์ชัน Renesas H8/300 มีตัวเลือกที่ขึ้นกับเครื่องหนึ่งตัวเลือก:

-h-tick-hex

รองรับค่าคงที่ฐานสิบหกสไตล์ H'00 นอกเหนือจากสไตล์ 0x00

-mach=name

ตั้งค่าตัวแปรเครื่อง H8300 ชื่อเครื่องต่อไปนี้เป็นที่รู้จัก: h8300h, h8300hn, h8300s, h8300sn, h8300sx และ h8300sxn

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ 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

ตามค่าเริ่มต้น 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, 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, 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, amx_int8, amx_bf16, amx_fp16, 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, svme and padlock

โปรดทราบว่าการช่วยจำส่วนขยายเหล่านี้สามารถนำหน้าด้วย no เพื่อยกเลิกฟังก์ชันที่เกี่ยวข้อง (และที่ขึ้นต่อกันใดๆ) เมื่อใช้คำสั่ง .arch ร่วมกับ -march คำสั่ง .arch จะมีความสำคัญ

-mtune=CPU

ตัวเลือกนี้ระบุโปรเซสเซอร์ที่จะปรับให้เหมาะสม เมื่อใช้ร่วมกับตัวเลือก -march ระบบจะสร้างเฉพาะคำสั่งของโปรเซสเซอร์ที่ระบุโดยตัวเลือก -march ค่า CPU ที่ถูกต้องจะเหมือนกับรายการโปรเซสเซอร์ของ -march=CPU

-msse2avx

ตัวเลือกนี้ระบุว่าแอสเซมเบลอร์ควรเข้ารหัสคำสั่ง SSE ด้วยคำนำหน้า VEX

-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 รหัสผลลัพธ์อาจไม่ทำงานในบางรุ่น

-mvexwig=0
-mvexwig=1

ตัวเลือกเหล่านี้ควบคุมวิธีที่แอสเซมเบลอร์ควรเข้ารหัสคำสั่ง VEX.W-ignored (WIG) VEX -mvexwig=0 จะเข้ารหัสคำสั่ง WIG VEX ด้วย vex.w=0 ซึ่งเป็นค่าเริ่มต้น -mvexwig=1 จะเข้ารหัสคำสั่ง WIG EVEX ด้วย vex.w=1 คำเตือน: อย่าใช้รหัสนี้สำหรับรหัสการผลิต - เนื่องจากความผิดพลาดของ CPU โค้ดผลลัพธ์อาจไม่ ทำงานในบางรุ่น

-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

ตัวเลือกเหล่านี้ควบคุมวิธีที่แอสเซมเบลอร์ควรเข้ารหัสคำสั่ง w-ignored (WIG) EVEX -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

ตัวเลือกนี้ระบุไวยากรณ์ของคำสั่งเมื่อประมวลผลคำสั่ง คำสั่ง .att_syntax และ .intel_syntax จะใช้แบบอย่าง

-mnaked-reg

ตัวเลือกนี้ระบุว่าการลงทะเบียนไม่ต้องการคำนำหน้า % คำสั่ง .att_syntax และ .intel_syntax จะใช้แบบอย่าง

-madd-bnd-prefix

ตัวเลือกนี้บังคับให้แอสเซมเบลอร์เพิ่มคำนำหน้า BND ให้กับทุกสาขา แม้ว่าคำนำหน้าดังกล่าวจะไม่ได้ระบุอย่างชัดเจนในซอร์สโค้ดก็ตาม

-mno-shared

สำหรับเป้าหมาย ELF แอสเซมเบลอร์จะปรับการย้ายตำแหน่งที่ไม่ใช่ PLT ให้เหมาะสมเทียบกับเป้าหมายสาขาทั่วโลกที่ไม่อ่อนแอที่กำหนดไว้ด้วยการมองเห็นเริ่มต้น ตัวเลือก -mshared บอกให้แอสเซมเบลอร์สร้างรหัสซึ่งอาจเข้าสู่ไลบรารีที่ใช้ร่วมกัน ซึ่งเป้าหมายสาขาทั่วโลกที่ไม่อ่อนแอทั้งหมดพร้อมการเปิดเผยเริ่มต้นสามารถยึดครองได้ รหัสผลลัพธ์จะใหญ่กว่าเล็กน้อย ตัวเลือกนี้มีผลกับการจัดการคำแนะนำของสาขาเท่านั้น

-mbig-obj

บนเป้าหมาย PE/COFF ตัวเลือกนี้บังคับให้ใช้รูปแบบไฟล์วัตถุขนาดใหญ่ ซึ่งอนุญาตมากกว่า 32768 ส่วน

-momit-lock-prefix=no
-momit-lock-prefix=yes

ตัวเลือกเหล่านี้ควบคุมวิธีที่แอสเซมเบลอร์ควรเข้ารหัสคำนำหน้าการล็อก ตัวเลือกนี้มีไว้เพื่อเป็นวิธีแก้ปัญหาสำหรับโปรเซสเซอร์ที่ล้มเหลวในคำนำหน้าการล็อก ตัวเลือกนี้สามารถใช้ได้อย่างปลอดภัยกับคอมพิวเตอร์แบบ single-core, single-thread เท่านั้น -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 บิต และ ล็อค addl $0x0, (%esp) ในโหมด 32 บิต -mfence-as-lock-add=no จะเข้ารหัส lfence, mfence และ sfence ตามปกติ ซึ่งเป็นค่าเริ่มต้น

-mrelax-relocations=no
-mrelax-relocations=yes

ตัวเลือกเหล่านี้ควบคุมว่าแอสเซมเบลอร์ควรสร้างการย้ายตำแหน่งแบบผ่อนคลาย R_386_GOT32X ในโหมด 32 บิต หรือ R_X86_64_GOTPCRELX และ R_X86_64_REX_GOTPCRELX ในโหมด 64 บิต -mrelax-relocations=yes จะสร้างการย้ายตำแหน่งแบบผ่อน -mrelax-relocations=no จะไม่สร้างการย้ายตำแหน่งแบบผ่อน ค่าเริ่มต้นสามารถควบคุมได้ด้วยตัวเลือกการกำหนดค่า --enable-x86-relax-relocations

-malign-branch-boundary=NUM

ตัวเลือกนี้ควบคุมวิธีที่แอสเซมเบลอร์ควรจัดแนวสาขาด้วยคำนำหน้ากลุ่มหรือ NOP NUM ต้องยกกำลัง 2 ซึ่งควรเป็น 0 หรือไม่น้อยกว่า 16 สาขาจะจัดแนวภายในขอบเขตไบต์ NUM -malign-branch-boundary=0 ซึ่งเป็นค่าเริ่มต้น จะไม่จัดแนวสาขา

-malign-branch=TYPE[+TYPE...]

ตัวเลือกนี้ระบุประเภทของสาขาที่จะจัดแนว TYPE คือการรวมกันของ jcc ซึ่งจัดแนวการข้ามแบบมีเงื่อนไข fused ซึ่งจัดแนวการกระโดดแบบมีเงื่อนไขแบบผสม jmp ซึ่ง จัดแนวการข้ามที่ไม่มีเงื่อนไข การโทร ซึ่งจัดแนวการโทร ret ซึ่งจัดแนว rets ทางอ้อม ซึ่งจัดแนวการกระโดดและการโทรโดยอ้อม ค่าเริ่มต้นคือ -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 จะสร้าง Generate หรือ Instruction ด้วย lfence -mlfence-before-ret=shl/yes จะสร้างคำสั่ง shl ด้วย lfence -mlfence-before-ret=not จะไม่สร้างคำสั่งด้วย lfence -mlfence-before-ret=none จะไม่สร้าง lfence ซึ่งเป็นค่าเริ่มต้น

-mx86-used-note=no
-mx86-used-note=yes

ตัวเลือกเหล่านี้ควบคุมว่าแอสเซมเบลอร์ควรสร้างบันทึกคุณสมบัติ GNU_PROPERTY_X86_ISA_1_USED และ GNU_PROPERTY_X86_FEATURE_2_USED GNU หรือไม่ ค่าเริ่มต้นสามารถควบคุมได้โดยตัวเลือกกำหนดค่า --enable-x86-used-note

-mevexrcig=rne
-mevexrcig=rd
-mevexrcig=ru
-mevexrcig=rz

ตัวเลือกเหล่านี้ควบคุมวิธีที่แอสเซมเบลอร์ควรเข้ารหัสคำสั่ง SAE-only EVEX -mevexrcig=rne จะเข้ารหัสบิต RC ของคำสั่ง EVEX ด้วย 00 ซึ่งเป็นค่าเริ่มต้น -mevexrcig=rd, -mevexrcig=ru และ -mevexrcig=rz จะเข้ารหัสคำสั่ง EVEX เฉพาะ SAE ด้วยบิต RC 01, 10 และ 11 ตามลำดับ

-mamd64
-mintel64

ตัวเลือกนี้ระบุว่าแอสเซมเบลอร์ควรยอมรับเฉพาะ AMD64 หรือ Intel64 ISA ในโหมด 64 บิต ค่าเริ่มต้นคือยอมรับทั่วไป, Intel64 เท่านั้นและ AMD64 ISAs

-O0 | -O | -O1 | -O2 | -Os

เพิ่มประสิทธิภาพการเข้ารหัสคำสั่งด้วยขนาดคำสั่งที่เล็กลง -O และ -O1 เข้ารหัสคำแนะนำการโหลดรีจิสเตอร์ 64 บิตด้วย 64 บิตทันทีที่คำสั่งโหลดรีจิสเตอร์ 32 บิตพร้อม 31 บิตหรือ 32 บิตทันที เข้ารหัส 64 - บิต คำแนะนำในการล้างรีจิสเตอร์พร้อมคำแนะนำการล้างรีจิสเตอร์ 32 บิต เข้ารหัสคำแนะนำการล้างรีจิสเตอร์เวกเตอร์ VEX/EVEX 256 บิต/512 บิต พร้อมคำแนะนำการล้างรีจิสเตอร์เวกเตอร์ VEX 128 บิต เข้ารหัสโหลดรีจิสเตอร์เวกเตอร์ EVEX 128 บิต/256 บิต /จัดเก็บคำสั่งด้วย VEX vector register โหลด/เก็บคำแนะนำ และเข้ารหัส EVEX แบบ 128 บิต/256 บิต บรรจุคำสั่งตรรกะจำนวนเต็มด้วยตรรกะจำนวนเต็มบรรจุ VEX 128 บิต/256 บิต -O2 มีการเพิ่มประสิทธิภาพ -O1 พร้อมเข้ารหัสคำแนะนำการล้างรีจิสเตอร์เวกเตอร์ EVEX 256 บิต/512 บิต พร้อมคำแนะนำการล้างรีจิสเตอร์เวกเตอร์ EVEX 128 บิต ในโหมด 64 บิต คำแนะนำที่เข้ารหัส VEX ด้วยตัวดำเนินการต้นทางที่มีการสลับที่ จะมีการสับเปลี่ยนตัวถูกดำเนินการต้นทาง หากอนุญาตให้ใช้รูปแบบคำนำหน้า VEX แบบ 2 ไบต์แทนแบบ 3 ไบต์ รูปแบบบางอย่างของ AND และ OR ที่มีตัวดำเนินการ (register) เดียวกันที่ระบุสองครั้งจะถูกเปลี่ยนเป็น TEST -Os มีการเพิ่มประสิทธิภาพ -O2 พร้อมเข้ารหัสการทดสอบการลงทะเบียนแบบ 16 บิต 32 บิต และ 64 บิต พร้อมการทดสอบการลงทะเบียนแบบ 8 บิตในทันที -O0 ปิดการเพิ่มประสิทธิภาพนี้

ตัวเลือกต่อไปนี้จะใช้งานได้เมื่อมีการกำหนดค่าสำหรับ Ubicom IP2K ซีรีส์

-mip2022ext

ระบุว่าอนุญาตให้ใช้คำสั่ง IP2022 เพิ่มเติม

-mip2022

คืนค่าพฤติกรรมเริ่มต้น ซึ่งจำกัดคำสั่งที่อนุญาตไว้เฉพาะคำสั่ง IP2022 พื้นฐาน

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ Renesas M32C และ M16C

-m32c

ประกอบคำสั่ง M32C

-m16c

ประกอบคำแนะนำ M16C (ค่าเริ่มต้น)

-relax

เปิดใช้การรองรับการผ่อนคลายเวลาลิงก์

-h-tick-hex

รองรับค่าคงที่ฐานสิบหกสไตล์ H'00 นอกเหนือจากสไตล์ 0x00

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับซีรีส์ Renesas M32R (เดิมคือ Mitsubishi M32R)

--m32rx

ระบุว่าโปรเซสเซอร์ใดในตระกูล M32R เป็นเป้าหมาย ค่าเริ่มต้นคือ M32R แต่ตัวเลือกนี้เปลี่ยนเป็น M32RX

--warn-explicit-parallel-conflicts or --Wp

สร้างข้อความเตือนเมื่อพบโครงสร้างคู่ขนานที่น่าสงสัย

--no-warn-explicit-parallel-conflicts or --Wnp

อย่าสร้างข้อความเตือนเมื่อพบโครงสร้างแบบขนานที่น่าสงสัย

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับ Motorola 68000 series

-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 ขึ้นไป

ตัวเลือกต่อไปนี้จะใช้งานได้เมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ Altera Nios II

-relax-section

แทนที่สาขาที่อยู่นอกช่วงที่ระบุด้วยลำดับ jmp ที่สัมพันธ์กับพีซีเมื่อเป็นไปได้ ลำดับรหัสที่สร้างขึ้นเหมาะสำหรับใช้ในรหัสที่ไม่ขึ้นกับตำแหน่ง แต่มีข้อจำกัดในทางปฏิบัติสำหรับช่วงสาขาที่ขยายเนื่องจากความยาวของลำดับ ตัวเลือกนี้เป็นค่าเริ่มต้น

-relax-all

แทนที่คำสั่งสาขาที่ไม่สามารถระบุได้ว่าอยู่ในช่วงและคำสั่งการโทรทั้งหมดด้วยลำดับ jmp และ callr (ตามลำดับ) ตัวเลือกนี้สร้างการย้ายตำแหน่งแบบสัมบูรณ์กับสัญลักษณ์เป้าหมาย และไม่เหมาะสำหรับรหัสที่ไม่ขึ้นกับตำแหน่ง

-no-relax

อย่าแทนที่สาขาหรือการโทรใดๆ

-EB

สร้างผลผลิตระดับบิ๊กเอนด์

-EL

สร้างเอาต์พุตแบบ little-endian นี่คือค่าเริ่มต้น

-march=architecture

ตัวเลือกนี้ระบุสถาปัตยกรรมเป้าหมาย แอสเซมเบลอร์แสดงข้อความแสดงข้อผิดพลาดหากมีการพยายามรวบรวมคำสั่งซึ่งจะไม่ดำเนินการบนสถาปัตยกรรมเป้าหมาย ชื่อสถาปัตยกรรมต่อไปนี้เป็นที่รู้จัก: r1, r2 ค่าเริ่มต้นคือ r1

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ PRU

-mlink-relax

สมมติว่า LD จะเพิ่มประสิทธิภาพคำสั่ง LDI32 โดยการตรวจสอบ 16 บิตบนของ นิพจน์ หากเป็นศูนย์ทั้งหมด LD จะย่อคำสั่ง LDI32 ให้เป็น LDI เดียว ในกรณีเช่นนี้ as จะส่งออกการย้ายตำแหน่ง DIFF สำหรับนิพจน์ที่แตกต่างกัน

-mno-link-relax

สมมติว่า LD จะไม่ปรับคำสั่ง LDI32 ให้เหมาะสม ด้วยเหตุนี้ การย้ายตำแหน่ง DIFF จะไม่ถูกปล่อยออกมา

-mno-warn-regname-label

ไม่ต้องเตือนหากชื่อฉลากตรงกับชื่อทะเบียน โดยปกติโปรแกรมเมอร์แอสเซมเบลอร์จะต้องการให้มีการเตือนนี้ คอมไพเลอร์ C อาจต้องการปิดการทำงานนี้

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ MIPS

-G num

ตัวเลือกนี้กำหนดขนาดที่ใหญ่ที่สุดของวัตถุที่สามารถอ้างอิงโดยปริยายด้วยรีจิสเตอร์ gp ยอมรับเฉพาะสำหรับเป้าหมายที่ใช้รูปแบบ ECOFF เช่น DECstation ที่ใช้งาน Ultrix ค่าเริ่มต้นคือ 8

-EB

สร้างเอาต์พุตรูปแบบ endian ขนาดใหญ่

-EL

สร้างเอาต์พุตรูปแบบ 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 สอดคล้องกับ 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 รีลีส 6 โปรเซสเซอร์ ISA ตามลำดับ

-march=cpu

สร้างรหัสสำหรับ MIPS CPU เฉพาะ

-mtune=cpu

กำหนดเวลาและปรับแต่งสำหรับ MIPS CPU โดยเฉพาะ

-mfix7000
-mno-fix7000

ทำให้ nops ถูกแทรกหากการอ่านรีจิสเตอร์ปลายทางของคำสั่ง mfhi หรือ mflo เกิดขึ้นในสองคำสั่งต่อไปนี้

-mfix-rm7000
-mno-fix-rm7000

ทำให้ nops ถูกแทรกหากคำสั่ง dmult หรือ dmultu ตามด้วยคำสั่งโหลด

-mfix-r5900
-mno-fix-r5900

อย่าพยายามจัดตารางเวลาคำสั่งก่อนหน้าลงในช่องหน่วงเวลาของคำสั่งสาขาซึ่งวางไว้ที่ส่วนท้ายของลูปสั้นๆ ที่มีหกคำสั่งหรือน้อยกว่า และกำหนดเวลาคำสั่ง nop ที่นั่นแทนเสมอ ข้อบกพร่องของลูปสั้นภายใต้เงื่อนไขบางประการทำให้ลูปทำงานเพียงครั้งเดียวหรือสองครั้ง เนื่องจากข้อบกพร่องของฮาร์ดแวร์ในชิป R5900

-mdebug
-no-mdebug

ทำให้เอาต์พุตการดีบักแบบแทงไปที่ส่วน .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 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 สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง MSA -mno-msa ปิดตัวเลือกนี้

-mxpa
-mno-xpa

สร้างรหัสสำหรับส่วนขยาย MIPS eXtended Physical Address (XPA) สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง XPA -mno-xpa ปิดตัวเลือกนี้

-mmt
-mno-mt

สร้างรหัสสำหรับส่วนขยายเฉพาะแอปพลิเคชัน MT สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง MT -mno-mt ปิดตัวเลือกนี้

-mmcu
-mno-mcu

สร้างรหัสสำหรับส่วนขยายเฉพาะแอปพลิเคชัน MCU สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง MCU -mno-mcu ปิดตัวเลือกนี้

-mcrc
-mno-crc

สร้างรหัสสำหรับ MIPS cyclic redundancy check (CRC) Application Specific Extension สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง CRC -mno-crc ปิดตัวเลือกนี้

-mginv
-mno-ginv

สร้างรหัสสำหรับส่วนขยายเฉพาะแอปพลิเคชัน Global INValidate (GINV) สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง GINV -mno-ginv ปิดตัวเลือกนี้

-mloongson-mmi
-mno-loongson-mmi

สร้างโค้ดสำหรับส่วนขยาย Loongson MultiMedia Extensions Instructions (MMI) Application Specific Extension สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง MMI -mno-loongson-mmi ปิดตัวเลือกนี้

-mloongson-cam
-mno-loongson-cam

สร้างรหัสสำหรับคำสั่ง Loongson Content Address Memory (CAM) สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง Loongson CAM -mno-loongson-cam ปิดตัวเลือกนี้

-mloongson-ext
-mno-loongson-ext

สร้างโค้ดสำหรับคำสั่ง Loongson EXTensions (EXT) สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง Loongson EXT -mno-loongson-ext ปิดตัวเลือกนี้

-mloongson-ext2
-mno-loongson-ext2

สร้างโค้ดสำหรับคำสั่ง Loongson EXTensions R2 (EXT2) ตัวเลือกนี้หมายถึง -mloongson-ext สิ่งนี้บอกให้แอสเซมเบลอร์ยอมรับคำสั่ง Loongson EXT2 -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 เปิดใช้งานการผ่อนคลายของ 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=encoding

เลือกระหว่างรูปแบบการเข้ารหัส 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

เป็น ละเว้นตัวเลือกนี้ เป็นที่ยอมรับสำหรับความเข้ากันได้กับเครื่องมือพื้นเมือง

--trap
--no-trap
--break
--no-break

ควบคุมวิธีการจัดการกับการคูณล้นและการหารด้วยศูนย์ --trap หรือ --no-break (ซึ่งเป็นคำพ้องความหมาย) ใช้ข้อยกเว้นของ Trap (และใช้ได้กับ Instruction Set Architecture ระดับ 2 และสูงกว่าเท่านั้น) --break หรือ --no-trap (รวมถึงคำพ้องความหมายและค่าเริ่มต้นด้วย) ใช้ข้อยกเว้นการพัก

-n

เมื่อใช้ตัวเลือกนี้ เป็น จะออกคำเตือนทุกครั้งที่สร้างคำสั่ง nop จากมาโคร

ตัวเลือกต่อไปนี้จะใช้งานได้เมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ LoongArch

-fpic
-fPIC

สร้างรหัสที่ไม่ขึ้นกับตำแหน่ง

-fno-pic

อย่าสร้างรหัสที่ไม่ขึ้นกับตำแหน่ง (ค่าเริ่มต้น)

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับตัวประมวลผล Meta

"-mcpu=metac11"

สร้างรหัสสำหรับ Meta 1.1

"-mcpu=metac12"

สร้างรหัสสำหรับ Meta 1.2

"-mcpu=metac21"

สร้างรหัสสำหรับ Meta 2.1

"-mfpu=metac21"

อนุญาตให้รหัสใช้ฮาร์ดแวร์ FPU ของ Meta 2.1

ดูหน้าข้อมูลสำหรับเอกสารประกอบของตัวเลือกเฉพาะของ MMIX

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ NDS32

"-O1"

เพิ่มประสิทธิภาพ

"-Os"

เพิ่มประสิทธิภาพสำหรับพื้นที่

"-EL"

สร้างเอาต์พุตข้อมูล endian เล็กน้อย

"-EB"

สร้างเอาต์พุตข้อมูล endian เล็กน้อย

"-mpic"

สร้าง PIC

"-mno-fp-as-gp-relax"

ระงับการผ่อนคลาย fp-as-gp สำหรับไฟล์นี้

"-mb2bb-relax"

การเพิ่มประสิทธิภาพสาขาแบบต่อเนื่อง

"-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 อาจเป็น 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"

เปิดการสนับสนุนส่วนขยายและคำแนะนำทั้งหมด

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ 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 core complex

-me500mc

สร้างโค้ดสำหรับ Freescale e500mc core complex

-me500mc64

สร้างโค้ดสำหรับ Freescale e500mc64 core complex

-me5500

สร้างโค้ดสำหรับ Freescale e5500 core complex

-me6500

สร้างโค้ดสำหรับ Freescale e6500 core complex

-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

สร้างโค้ดสำหรับโปรเซสเซอร์ด้วยคำสั่ง 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

-mfuture

สร้างรหัสสำหรับสถาปัตยกรรม 'อนาคต'

-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

สร้างรหัสสำหรับเครื่องเอนเดียนตัวน้อย

-mbig, -mbig-endian, -be

สร้างรหัสสำหรับเครื่อง endian ขนาดใหญ่

-msolaris

สร้างรหัสสำหรับ Solaris

-mno-solaris

อย่าสร้างรหัสสำหรับ Solaris

-nops=count

หากคำสั่งการจัดตำแหน่งแทรก nops มากกว่า จำนวน ให้ใส่สาขาที่จุดเริ่มต้นเพื่อข้ามการดำเนินการของ nops

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ RISC-V

-fpic
-fPIC

สร้างรหัสที่ไม่ขึ้นกับตำแหน่ง

-fno-pic

อย่าสร้างรหัสที่ไม่ขึ้นกับตำแหน่ง (ค่าเริ่มต้น)

-march=ISA

เลือกฐาน isa ตามที่ระบุโดย ISA ตัวอย่างเช่น -march=rv32ima หากไม่ได้ตั้งค่าตัวเลือกนี้และแอตทริบิวต์ของสถาปัตยกรรม แอสเซมเบลอร์จะตรวจสอบการตั้งค่าเริ่มต้น --with-arch=ISA

-misa-spec=ISAspec

เลือกรุ่นข้อมูลจำเพาะ isa เริ่มต้น หากเวอร์ชันของ ISA ไม่ได้ตั้งค่าตาม -march แอสเซมเบลอร์จะช่วยตั้งค่าเวอร์ชันตามข้อมูลจำเพาะที่เลือกโดยค่าเริ่มต้น หากไม่ได้ตั้งค่าตัวเลือกนี้ แอสเซมเบลอร์จะตรวจสอบการตั้งค่ากำหนดเริ่มต้น --with-isa-spec=ISAspec

-mpriv-spec=PRIVspec

เลือกเวอร์ชันข้อมูลจำเพาะที่ได้รับสิทธิพิเศษ เราสามารถตัดสินใจได้ว่า CSR นั้นถูกต้องหรือไม่ตาม Spec ที่เลือก หากไม่ได้ตั้งค่าตัวเลือกนี้และแอตทริบิวต์สิทธิ์ แอสเซมเบลอร์จะตรวจสอบการตั้งค่าเริ่มต้น --with-priv-spec=PRIVspec

-mabi=ABI

เลือก ABI ซึ่งเป็น ilp32 หรือ lp64 หรือเลือกตามด้วย f, d หรือ q เพื่อระบุหลักการเรียกแบบทศนิยมแบบความแม่นยำเดียว ความแม่นยำสองเท่า หรือสี่ความแม่นยำ หรือไม่มีเลยเพื่อระบุแบบแผนการเรียกแบบซอฟต์โฟลต . นอกจากนี้ ilp32 ยังสามารถเลือกที่จะตามด้วย e เพื่อระบุ RVE ABI ซึ่งเป็น soft-float เสมอ

-mrelax

ใช้ประโยชน์จากการผ่อนคลายตัวเชื่อมโยงเพื่อลดจำนวนคำสั่งที่จำเป็นในการทำให้ที่อยู่ของสัญลักษณ์เป็นจริง (ค่าเริ่มต้น)

-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

สร้างรหัสสำหรับเครื่องเอนเดียนตัวน้อย

-mbig-endian

สร้างรหัสสำหรับเครื่อง endian ขนาดใหญ่

ดูหน้าข้อมูลสำหรับเอกสารประกอบของตัวเลือกเฉพาะของ RX

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับตระกูลโปรเซสเซอร์ s390

-m31
-m64

เลือกขนาดของคำ 31/32 บิตหรือ 64 บิต

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

-mregnames
-mno-regnames

อนุญาตหรือไม่อนุญาตชื่อสัญลักษณ์สำหรับการลงทะเบียน

-mwarn-areg-zero

เตือนเมื่อใดก็ตามที่ระบุตัวดำเนินการสำหรับการลงทะเบียนฐานหรือดัชนี แต่ประเมินเป็นศูนย์

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อกำหนดค่าสำหรับโปรเซสเซอร์ TMS320C6000

-march=arch

เปิดใช้งาน (เท่านั้น) คำแนะนำจากสถาปัตยกรรม ส่วนโค้ง ตามค่าเริ่มต้น คำแนะนำทั้งหมดจะได้รับอนุญาต ยอมรับค่าต่อไปนี้ของ arch: 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 addressing และ -mpid=far ระบุที่อยู่ที่ไม่ขึ้นกับตำแหน่งด้วยการเข้าถึง GOT โดยใช้ที่อยู่ DP แบบไกล ตัวเชื่อมโยงจะส่งคำเตือนหากวัตถุที่สร้างขึ้นด้วยการตั้งค่าที่แตกต่างกันของตัวเลือกนี้เชื่อมโยงเข้าด้วยกัน

-mpic
-mno-pic

ตัวเลือก -mpic ทำให้แอสเซมเบลอร์สร้างแอตทริบิวต์ Tag_ABI_PIC ที่มีค่าเป็น 1 ซึ่งบ่งชี้ว่าโค้ดกำลังใช้การระบุรหัสที่ไม่ขึ้นกับตำแหน่ง ซึ่งก็คือ -mno -pic อ็อพชันเริ่มต้น ทำให้แท็กมีค่าเป็น 0 ซึ่งระบุที่อยู่โค้ดที่ขึ้นกับตำแหน่ง ตัวเชื่อมโยงจะส่งคำเตือนหากวัตถุประเภทต่างๆ (ขึ้นอยู่กับตำแหน่งและไม่ขึ้นกับตำแหน่ง) ถูกเชื่อมโยงเข้าด้วยกัน

-mbig-endian
-mlittle-endian

สร้างรหัสสำหรับ endianness ที่ระบุ ค่าเริ่มต้นคือ little-endian

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ TILE-Gx

-m32 | -m64

เลือกขนาดของคำ 32 บิตหรือ 64 บิต

-EB | -EL

เลือก endianness ไม่ว่าจะเป็น big-endian (-EB) หรือ little-endian (-EL)

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ Visium

-mtune=arch

ตัวเลือกนี้ระบุสถาปัตยกรรมเป้าหมาย หากมีความพยายามที่จะรวบรวมคำสั่งที่จะไม่ดำเนินการบนสถาปัตยกรรมเป้าหมาย แอสเซมเบลอร์จะแสดงข้อความแสดงข้อผิดพลาด ชื่อต่อไปนี้เป็นที่รู้จัก: mcm24 mcm gr5 gr6

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ Xtensa

--text-section-literals | --no-text-section-literals

ควบคุมการบำบัดสระอักษร. ค่าเริ่มต้นคือ --no-text-section-literals ซึ่งจะวางตัวอักษรในส่วนที่แยกจากกันในไฟล์เอาต์พุต สิ่งนี้ทำให้สามารถวางพูลตัวอักษรใน RAM/ROM ข้อมูลได้ ด้วย --text-section-literals ตัวอักษรจะถูกกระจายในส่วนข้อความเพื่อให้ใกล้เคียงกับการอ้างอิงมากที่สุด นี่อาจจำเป็นสำหรับไฟล์แอสเซมบลีขนาดใหญ่ โดยที่ตัวอักษรอาจไม่อยู่ในช่วงของคำสั่ง L32R ในส่วนข้อความ ตัวอักษรถูกจัดกลุ่มเป็นกลุ่มตามคำสั่ง .literal_position หรือก่อนหน้าคำสั่ง ENTRY ตัวเลือกเหล่านี้มีผลกับตัวอักษรที่อ้างอิงผ่านคำสั่ง L32R ที่สัมพันธ์กับพีซีเท่านั้น ตัวอักษรสำหรับคำสั่งโหมดสัมบูรณ์ L32R จะได้รับการจัดการแยกกัน

--auto-litpools | --no-auto-litpools

ควบคุมการบำบัดสระอักษร. ค่าเริ่มต้นคือ --no-auto-litpools ซึ่งหากไม่มี --text-section-literals จะวางตัวอักษรในส่วนที่แยกจากกันในไฟล์เอาต์พุต สิ่งนี้ทำให้สามารถวางพูลตัวอักษรใน RAM/ROM ข้อมูลได้ ด้วย --auto-litpools ตัวอักษรจะถูกกระจายในส่วนข้อความเพื่อให้ใกล้เคียงกับการอ้างอิงมากที่สุด ไม่จำเป็นต้องใช้คำสั่ง .literal_position ที่ชัดเจน นี่อาจจำเป็นสำหรับฟังก์ชันที่มีขนาดใหญ่มาก โดยที่คำสั่ง L32R ที่ท้ายฟังก์ชันอาจไม่สามารถเข้าถึงได้โดยคำสั่ง L32R ตัวเลือกเหล่านี้มีผลกับตัวอักษรที่อ้างอิงผ่านคำสั่ง L32R ที่สัมพันธ์กับพีซีเท่านั้น ตัวอักษรสำหรับคำสั่งโหมดสัมบูรณ์ L32R จะได้รับการจัดการแยกกัน เมื่อใช้ร่วมกับ --text-section-literals --auto-litpools จะมีความสำคัญมากกว่า

--absolute-literals | --no-absolute-literals

ระบุกับแอสเซมเบลอร์ว่าคำสั่ง L32R ใช้การกำหนดแอดเดรสแบบสัมบูรณ์หรือแบบสัมพันธ์กับพีซี หากโปรเซสเซอร์มีตัวเลือกการกำหนดแอดเดรสแบบสัมบูรณ์ ค่าเริ่มต้นคือใช้การเปลี่ยนตำแหน่งแบบสัมบูรณ์ L32R มิฉะนั้น จะใช้เฉพาะการย้ายตำแหน่ง L32R ที่สัมพันธ์กับพีซีเท่านั้น

--target-align | --no-target-align

เปิดหรือปิดการจัดตำแหน่งอัตโนมัติเพื่อลดค่าปรับสาขาโดยมีค่าใช้จ่ายบางอย่างในขนาดโค้ด การเพิ่มประสิทธิภาพนี้เปิดใช้งานตามค่าเริ่มต้น โปรดทราบว่าแอสเซมเบลอร์จะจัดตำแหน่งคำแนะนำเช่น LOOP ที่มีข้อกำหนดการจัดตำแหน่งคงที่เสมอ

--longcalls | --no-longcalls

เปิดหรือปิดการแปลงคำแนะนำการโทรเพื่ออนุญาตการโทรผ่านที่อยู่ต่างๆ ได้มากขึ้น ควรใช้ตัวเลือกนี้เมื่อเป้าหมายการโทรอาจอยู่นอกระยะ อาจทำให้ทั้งขนาดรหัสและประสิทธิภาพลดลง แต่โดยทั่วไปแล้วตัวเชื่อมโยงสามารถเพิ่มประสิทธิภาพการกำจัดค่าใช้จ่ายที่ไม่จำเป็นเมื่อการโทรสิ้นสุดภายในช่วง ค่าเริ่มต้นคือ --ไม่ต้องโทรนาน

--transform | --no-transform

เปิดใช้งานหรือปิดใช้งานการแปลงแอสเซมเบลอร์ทั้งหมดของคำสั่ง Xtensa รวมทั้งการผ่อนคลายและการเพิ่มประสิทธิภาพ ค่าเริ่มต้นคือ --transform; --no-transform ควรใช้ในกรณีที่หายากเท่านั้น เมื่อคำสั่งต้องตรงตามที่ระบุในแหล่งแอสเซมบลี การใช้ --no-transform ทำให้ตัวดำเนินการคำสั่งอยู่นอกช่วงเกิดข้อผิดพลาด

--rename-section oldname=newname

เปลี่ยนชื่อส่วน oldname เป็น newname ตัวเลือกนี้สามารถใช้ได้หลายครั้งเพื่อเปลี่ยนชื่อหลายส่วน

--trampolines | --no-trampolines

เปิดหรือปิดการแปลงคำสั่งข้ามเพื่ออนุญาตให้ข้ามช่วงที่อยู่มากขึ้น ควรใช้ตัวเลือกนี้เมื่อเป้าหมายกระโดดอาจอยู่นอกระยะ ในกรณีที่ไม่มีการกระโดดดังกล่าว ตัวเลือกนี้จะไม่ส่งผลต่อขนาดหรือประสิทธิภาพของโค้ด ค่าเริ่มต้นคือ -- แทรมโพลีน

--abi-windowed | --abi-call0

เลือกแท็ก ABI ที่เขียนลงในส่วน .xtensa.info แท็ก ABI ระบุ ABI ของรหัสแอสเซมบลี ตัวเชื่อมโยงออกคำเตือนเมื่อพยายามเชื่อมโยงไฟล์วัตถุกับแท็ก ABI ที่ไม่สอดคล้องกัน ABI เริ่มต้นถูกเลือกโดยการกำหนดค่าหลักของ Xtensa

ตัวเลือกต่อไปนี้จะพร้อมใช้งานเมื่อมีการกำหนดค่าสำหรับโปรเซสเซอร์ 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 CPU ตามค่าเริ่มต้น, 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), and the Info entries for binutils and ld.

ลิขสิทธิ์

ลิขสิทธิ์ (c) 1991-2023 Free Software Foundation, Inc.

อนุญาตให้คัดลอก แจกจ่าย และ/หรือแก้ไขเอกสารนี้ภายใต้เงื่อนไขของสัญญาอนุญาตเอกสารเสรี GNU รุ่น 1.3 หรือรุ่นที่ใหม่กว่าที่เผยแพร่โดยมูลนิธิซอฟต์แวร์เสรี ไม่มีส่วนที่ไม่แปรเปลี่ยน ไม่มีข้อความปกหน้า และไม่มีข้อความปกหลัง สำเนาของใบอนุญาตจะรวมอยู่ในส่วนที่ให้สิทธิ์อนุญาตเอกสาร GNU ฟรี