ນີ້ແມ່ນຄໍາສັ່ງ nasm ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
nasm - Netwide Assembler, ເຄື່ອງປະກອບ 80x86 ແບບເຄື່ອນທີ່
ສະຫຼຸບສັງລວມ
nasm [-@ ໄຟລ໌ຕອບສະຫນອງ] [-f ຮູບແບບ] [-o outfile] [-l listfile] [ທາງເລືອກໃນການ...] ຊື່ເອກະສານ
ລາຍລະອຽດ
ໄດ້ nasm ຄໍາສັ່ງປະກອບໄຟລ໌ ຊື່ເອກະສານ ແລະສົ່ງຜົນຜະລິດໂດຍກົງກັບໄຟລ໌ outfile if
ລະບຸ. ຖ້າ outfile ບໍ່ໄດ້ລະບຸໄວ້, nasm ຈະມາຈາກຊື່ໄຟລ໌ຜົນຜະລິດເລີ່ມຕົ້ນ
ຊື່ຂອງໄຟລ໌ປ້ອນຂໍ້ມູນຂອງມັນ, ໂດຍປົກກະຕິໂດຍການຕໍ່ທ້າຍ '.o' ຫຼື '.obj', ຫຼືໂດຍການເອົາທັງໝົດອອກ.
ສ່ວນຂະຫຍາຍສໍາລັບໄຟລ໌ໄບນາຣີດິບ. ລົ້ມເຫລວນັ້ນ, ຊື່ໄຟລ໌ຜົນຜະລິດຈະເປັນ 'nasm.out'.
OPTIONS
-@ ຊື່ເອກະສານ
ສາເຫດ nasm ເພື່ອປະມວນຜົນທາງເລືອກຈາກຊື່ໄຟລ໌ຄືກັບວ່າພວກມັນຖືກລວມຢູ່ໃນຄໍາສັ່ງ
ເສັ້ນ.
-a
ສາເຫດ nasm ເພື່ອປະກອບໄຟລ໌ປ້ອນຂໍ້ມູນທີ່ໃຫ້ໄວ້ໂດຍບໍ່ຕ້ອງໃຊ້ມະຫາພາກກ່ອນ
ໂປເຊດເຊີກ່ອນ.
-D|-d ມະຫາພາກ[=value]
ກຳນົດໄວ້ລ່ວງໜ້າຂອງມະຫາພາກແຖວດຽວ.
-E|-e
ສາເຫດ nasm ເພື່ອ preprocess ໄຟລ໌ປ້ອນຂໍ້ມູນໃຫ້, ແລະຂຽນຜົນຜະລິດໄດ້ stdout (or the
ຊື່ໄຟລ໌ຜົນຜະລິດທີ່ລະບຸໄວ້), ແລະບໍ່ໄດ້ປະກອບອັນໃດ.
-f ຮູບແບບ
ລະບຸຮູບແບບໄຟລ໌ຜົນຜະລິດ. ເພື່ອເບິ່ງບັນຊີລາຍຊື່ຂອງຮູບແບບຜົນຜະລິດທີ່ຖືກຕ້ອງ, ໃຊ້ປຸ່ມ -hf
ທາງເລືອກ.
-F ຮູບແບບ
ລະບຸຮູບແບບຂໍ້ມູນດີບັກ. ເພື່ອເບິ່ງບັນຊີລາຍຊື່ຂອງຮູບແບບຜົນຜະລິດທີ່ຖືກຕ້ອງ, ໃຊ້ປຸ່ມ
-y ທາງເລືອກ (ຕົວຢ່າງ - ຄວາມຮູ້ສຶກ -y).
-g
ສາເຫດ nasm ເພື່ອສ້າງຂໍ້ມູນດີບັກໃນຮູບແບບທີ່ເລືອກ.
-h
ສາເຫດ nasm ອອກຈາກທັນທີ, ຫຼັງຈາກໃຫ້ບົດສະຫຼຸບຂອງທາງເລືອກໃນການເອີ້ນຂອງຕົນ.
-hf
ຄືກັນກັບ -h , ແຕ່ຍັງລາຍຊື່ທຸກຮູບແບບຜົນຜະລິດທີ່ຖືກຕ້ອງ.
-I|-i ລະບົບ
ເພີ່ມໄດເລກະທໍລີໃສ່ເສັ້ນທາງຄົ້ນຫາສໍາລັບການລວມໄຟລ໌. ຂໍ້ມູນຈໍາເພາະຂອງໄດເລກະທໍລີ
ຈະຕ້ອງປະກອບມີ slash ຕິດຕາມ, ເນື່ອງຈາກວ່າມັນຈະຖືກ prepended ໂດຍກົງກັບຊື່ຂອງ
ລວມໄຟລ໌.
-l ລາຍການໄຟລ໌
ເຮັດໃຫ້ບັນຊີລາຍຊື່ການປະກອບເປັນມຸ້ງໄປຫາໄຟລ໌ທີ່ໃຫ້, ໃນທີ່ຕົ້ນສະບັບ
ແຫຼ່ງທີ່ຈະສະແດງຢູ່ເບື້ອງຂວາມື (ບວກກັບແຫຼ່ງສໍາລັບໄຟລ໌ລວມແລະ
ການຂະຫຍາຍມະຫາພາກຫຼາຍເສັ້ນ) ແລະລະຫັດທີ່ສ້າງຂຶ້ນແມ່ນສະແດງຢູ່ໃນ hex ຢູ່ເບື້ອງຊ້າຍ.
-M
ສາເຫດ nasm ເພື່ອສົ່ງອອກການຂຶ້ນກັບແບບ Makefile ກັບ stdout; ຜົນຜະລິດປົກກະຕິແມ່ນ
ສະກັດກັ້ນ.
-MG ເອກະສານ
ຄືກັນກັບ -M ແຕ່ສົມມຸດວ່າການຂື້ນກັບ Makefile ທີ່ຂາດຫາຍໄປແມ່ນຖືກສ້າງຂຶ້ນແລະເພີ່ມໃສ່
ບັນຊີລາຍຊື່ການເພິ່ງພາອາໄສໂດຍບໍ່ມີຄໍານໍາຫນ້າ.
-MF ເອກະສານ
ສົ່ງອອກການຂຶ້ນກັບແບບ Makefile ກັບໄຟລ໌ທີ່ລະບຸ.
-MD ເອກະສານ
ຄືກັນກັບການປະສົມປະສານຂອງ -M ແລະ -MF ຕົວເລືອກ
-MT ເອກະສານ
ລົບລ້າງຊື່ເລີ່ມຕົ້ນຂອງຊື່ເປົ້າໝາຍການເພິ່ງພາອາໄສເປົ້າໝາຍ. ນີ້ແມ່ນ
ປົກກະຕິແລ້ວຄືກັນກັບຊື່ໄຟລ໌ຜົນຜະລິດ, ລະບຸໄວ້ໂດຍ -o ທາງເລືອກ.
-MQ ເອກະສານ
ຄືກັນກັບ -MT ຍົກເວັ້ນມັນພະຍາຍາມອ້າງອີງຕົວອັກສອນທີ່ມີຄວາມຫມາຍພິເສດໃນ
ໄວຍະກອນ Makefile. ນີ້ບໍ່ແມ່ນຄວາມໂງ່ຈ້າ, ເພາະວ່າບໍ່ແມ່ນຕົວລະຄອນທັງຫມົດທີ່ມີຄວາມຫມາຍພິເສດ
quotable ໃນ Make.
-MP
ປ່ອຍເປົ້າໝາຍທີ່ຫຼອກລວງ.
-O ຈໍານວນ
ເພີ່ມປະສິດທິພາບການຊົດເຊີຍສາຂາ.
· -O0: ບໍ່ມີການເພີ່ມປະສິດທິພາບ
· -O1: ການເພີ່ມປະສິດທິພາບຫນ້ອຍທີ່ສຸດ
· -ອັອກ: ການເພີ່ມປະສິດທິພາບ Multipass (ຄ່າເລີ່ມຕົ້ນ)
-o outfile
ລະບຸຊື່ທີ່ຊັດເຈນສໍາລັບໄຟລ໌ຜົນຜະລິດ, overriding nasmຄ່າເລີ່ມຕົ້ນຂອງ
ການກໍານົດມັນ.
-P|-p ເອກະສານ
ລະບຸໄຟລ໌ທີ່ຈະຖືກລວມໄວ້ກ່ອນ, ກ່ອນທີ່ໄຟລ໌ຕົ້ນສະບັບຈະເລີ່ມເປັນ
ການປຸງແຕ່ງ.
-s
ສາເຫດ nasm ເພື່ອສົ່ງຂໍ້ຄວາມຄວາມຜິດພາດຂອງມັນແລະ / ຫຼືຊ່ວຍຂໍ້ຄວາມເພື່ອ stdout ແທນ stderr.
-t
ສາເຫດ nasm ເພື່ອປະກອບຢູ່ໃນໂຫມດ SciTech TASM ເຂົ້າກັນໄດ້.
-U|-u ມະຫາພາກ
ຍົກເລີກການກຳນົດ macro ແຖວດຽວ.
-v
ສາເຫດ nasm ເພື່ອອອກທັນທີ, ຫຼັງຈາກສະແດງຕົວເລກເວີຊັນຂອງມັນ.
*-W[no-]foo'
ສາເຫດ nasm ເພື່ອເປີດໃຊ້ຫຼືປິດບາງປະເພດຂໍ້ຄວາມເຕືອນ, ໃນແບບ gcc
ແບບ, ສໍາລັບການຍົກຕົວຢ່າງ -Worphan-ປ້າຍ or -Wno-ເດັກກຳພ້າ-ປ້າຍ.
-w[+-]ຟູ
ສາເຫດ nasm ເພື່ອເປີດໃຊ້ຫຼືປິດບາງຊັ້ນຂອງຂໍ້ຄວາມເຕືອນ, ຕົວຢ່າງ
-w+ປ້າຍກຳກັບກຳພ້າ or -w-macro-params.
-X ຮູບແບບ
ລະບຸຮູບແບບການລາຍງານຂໍ້ຜິດພາດ (gnu ຫຼື vc).
-y
ສາເຫດ nasm ເພື່ອລາຍຊື່ຮູບແບບດີບັກທີ່ຮອງຮັບ.
-Z ຊື່ເອກະສານ
ສາເຫດ nasm ເພື່ອປ່ຽນເສັ້ນທາງຂໍ້ຄວາມຂໍ້ຜິດພາດໄປຫາ ຊື່ເອກະສານ. ທາງເລືອກນີ້ມີຢູ່ເພື່ອສະຫນັບສະຫນູນ
ລະບົບປະຕິບັດການທີ່ stderr ບໍ່ຖືກໂອນໄດ້ງ່າຍ.
--prefix, --postfix
ຫຍໍ້ໜ້າ ຫຼືຕໍ່ທ້າຍ (ຕາມລຳດັບ) ການໂຕ້ແຍ້ງທີ່ໃຫ້ໄວ້ກັບທຸກຕົວແປທົ່ວໂລກ ຫຼືພາຍນອກ.
SYNTAX
ຫນ້າຜູ້ຊາຍນີ້ບໍ່ໄດ້ອະທິບາຍຢ່າງເຕັມສ່ວນ syntax ຂອງ nasmພາສາປະກອບຂອງ, ແຕ່ບໍ່
ໃຫ້ຂໍ້ສະຫຼຸບຂອງຄວາມແຕກຕ່າງຈາກອຸປະກອນປະກອບອື່ນໆ.
ທະບຽນ ບໍ່ມີເຄື່ອງໝາຍ '%' ນຳໜ້າ, ບໍ່ຄືກັບ ອາຍແກັສ, ແລະການລົງທະບຽນ stack ຈຸດລອຍແມ່ນ
ເອີ້ນວ່າເປັນ st0, st1, ແລະອື່ນໆ.
ຈຸດລອຍ ຄໍາແນະນໍາ ອາດຈະນໍາໃຊ້ຮູບແບບການປະຕິບັດດຽວຫຼືສອງ. ກ ເຖິງ
ຄໍາສໍາຄັນແມ່ນສະຫນອງໃຫ້; ດັ່ງນັ້ນ, ຫນຶ່ງອາດຈະຂຽນ
fadd st0,st1
fadd st1,st0
ຫຼືຫນຶ່ງສາມາດນໍາໃຊ້ແບບຟອມຕົວປະຕິບັດການດຽວທາງເລືອກ
fadd st1
fadd ກັບ st1
ບໍ່ລິເລີ່ມ ການເກັບຮັກສາ ສະຫງວນໄວ້ໂດຍໃຊ້ RESB, RESW, RESD, RESQ, REST ແລະ RESO
pseudo-opcodes, ແຕ່ລະຕົວກໍານົດການຫນຶ່ງທີ່ໃຫ້ຈໍານວນ bytes, ຄໍາ,
doublewords, quadwords ຫຼືສິບ-byte ຄໍາທີ່ຈະສະຫງວນ.
ການເລົ່າເລື່ອງ ຂອງລາຍການຂໍ້ມູນບໍ່ໄດ້ເຮັດໂດຍ DUP ຄໍາສໍາຄັນທີ່ເຫັນຢູ່ໃນ DOS assemblers, ແຕ່ໂດຍ
ການນໍາໃຊ້ຂອງ TIMES ຄໍານໍາຫນ້າ, ເຊັ່ນນີ້:
ຂໍ້ຄວາມ: ເວລາ 3 db 'abc'
ເວລາ 64-$+ຂໍ້ຄວາມ db 0
ເຊິ່ງກໍານົດ string abcabcabc, ຕິດຕາມດ້ວຍຈໍານວນທີ່ເຫມາະສົມຂອງສູນ bytes ເພື່ອເຮັດໃຫ້
ຄວາມຍາວທັງຫມົດເຖິງ 64 bytes.
ສັນຍາລັກ ເອກະສານ ສະເຫມີເຂົ້າໃຈວ່າທັນທີທັນໃດ (ເຊັ່ນທີ່ຢູ່ຂອງສັນຍາລັກ),
ເວັ້ນເສຍແຕ່ວ່າວົງເລັບສີ່ຫຼ່ຽມຈະຖືກນໍາໃຊ້, ໃນກໍລະນີນີ້, ເນື້ອໃນຂອງສະຖານທີ່ຫນ່ວຍຄວາມຈໍາແມ່ນ
ໃຊ້. ດັ່ງນັ້ນ:
mov ax,wordvar
ໂຫຼດ AX ກັບທີ່ຢູ່ຂອງ wordvar ປ່ຽນແປງໄດ້, ໃນຂະນະທີ່
mov ຂວານ,[wordvar]
mov ຂວານ,[wordvar+1]
mov ax,[es:wordvar+bx]
ທັງ ໝົດ ອ້າງອີງເຖິງ ເນື້ອຫາ ຂອງສະຖານທີ່ຄວາມຊົງຈໍາ. syntaxes
mov ax,es:wordvar[bx]
es mov ax,wordvar[1]
ບໍ່ຖືກຕ້ອງຕາມກົດໝາຍທັງໝົດ, ເຖິງແມ່ນວ່າການໃຊ້ຊື່ການລົງທະບຽນພາກສ່ວນເປັນຄຳນຳໜ້າຂອງຄຳແນະນຳ
ແມ່ນຖືກຕ້ອງ, ແລະສາມາດໃຊ້ກັບຄໍາແນະນໍາເຊັ່ນ: LODSB ທີ່ບໍ່ສາມາດ overridden ໃດໆ
ທາງອື່ນ.
ຄົງທີ່ ອາດຈະສະແດງອອກເປັນຕົວເລກໃນຮູບແບບສ່ວນໃຫຍ່: H, Q ຫຼື B ຫຍໍ້ມາຈາກ hex,
octal ຫຼື binary ຕາມລໍາດັບ, ແລະ '0x' ຫຼື '$' ຊັ້ນນໍາຫມາຍເຖິງ hex ເຊັ່ນກັນ. ອັນດັບສູນ
ບໍ່ໄດ້ຮັບການປິ່ນປົວພິເສດເລີຍ. ຕົວເລກຄົງທີ່ຂອງຕົວລະຄອນອາດຈະຖືກຫຸ້ມຢູ່ໃນອັນດຽວ ຫຼືສອງເທົ່າ
ວົງຢືມ; ບໍ່ມີລັກສະນະຫລົບຫນີ. ຄໍາສັ່ງແມ່ນພຽງເລັກນ້ອຍ endian (ປີ້ນກັບກັນ), ດັ່ງນັ້ນ
ລັກສະນະຄົງທີ່ 'ກຂຄງ' ໝາຍເຖິງ 0x64636261 ແລະບໍ່ແມ່ນ 0x61626364.
ປ້າຍຊື່ທ້ອງຖິ່ນເລີ່ມຕົ້ນດ້ວຍໄລຍະເວລາ, ແລະ 'ທ້ອງຖິ່ນ' ຂອງພວກມັນແມ່ນໄດ້ຮັບອະນຸຍາດຈາກຜູ້ປະກອບ
prepending ຊື່ຂອງສັນຍາລັກທີ່ບໍ່ແມ່ນທ້ອງຖິ່ນທີ່ຜ່ານມາ. ດັ່ງນັ້ນຈຶ່ງປະກາດປ້າຍ '.loop' ຫຼັງຈາກ
ປ້າຍຊື່ 'label' ໄດ້ກໍານົດສັນຍາລັກທີ່ເອີ້ນວ່າ 'label.loop'.
ທິດທາງ
SECTION ຊື່ or ພາກສ່ວນ ຊື່ ສາເຫດ nasm ເພື່ອສົ່ງລະຫັດຕໍ່ໄປນີ້ໄປຫາຊື່
ພາກ. ຊື່ພາກສ່ວນແຕກຕ່າງກັນກັບຮູບແບບເອກະສານຜົນຜະລິດ, ເຖິງແມ່ນວ່າຮູບແບບສ່ວນໃຫຍ່ສະຫນັບສະຫນູນ
ຊື່ .ຂໍ້ຄວາມ, .ຂໍ້ມູນ ແລະ .bss. (ຂໍ້ຍົກເວັ້ນແມ່ນ ວັດຖຸ ຮູບແບບ, ໃນທຸກພາກສ່ວນ
ຜູ້ໃຊ້ກໍານົດໄດ້.)
ABSOLUTE ທີ່ຢູ່ ສາເຫດ nasm ການຈັດວາງຈຸດປະກອບແນວຄິດຂອງຕົນຢູ່ທີ່ຢ່າງແທ້ຈິງ
ທີ່ຢູ່: ດັ່ງນັ້ນບໍ່ມີລະຫັດຫຼືຂໍ້ມູນອາດຈະຖືກສ້າງຂື້ນ, ແຕ່ທ່ານສາມາດນໍາໃຊ້ໄດ້ RESB, RESW ແລະ RESD ທີ່ຈະຍ້າຍອອກ
ຈຸດປະກອບຕໍ່ໄປອີກແລ້ວ, ແລະທ່ານສາມາດກໍານົດປ້າຍຊື່. ດັ່ງນັ້ນຄໍາສັ່ງນີ້ອາດຈະຖືກນໍາໃຊ້ເພື່ອ
ກໍານົດໂຄງສ້າງຂໍ້ມູນ. ເມື່ອທ່ານສໍາເລັດການປະກອບຢ່າງແທ້ຈິງ, ທ່ານຕ້ອງອອກ
ອື່ນ SECTION ຄໍາສັ່ງທີ່ຈະກັບຄືນສູ່ການປະກອບປົກກະຕິ.
ກະຕ່າ 16, ກະຕ່າ 32 or ກະຕ່າ 64 ສະຫຼັບໂໝດໂປເຊດເຊີເລີ່ມຕົ້ນສຳລັບອັນໃດ nasm is
ການສ້າງລະຫັດ: ມັນເທົ່າກັບ ໃຊ້ 16 or ໃຊ້ 32 ໃນ DOS assemblers.
ພາຍນອກ ສັນຍາລັກ ແລະ GLOBAL ສັນຍາລັກ ການນໍາເຂົ້າແລະສົ່ງອອກຄໍານິຍາມສັນຍາລັກ, ຕາມລໍາດັບ, ຈາກ
ແລະໂມດູນອື່ນໆ. ໃຫ້ສັງເກດວ່າ GLOBAL ຄໍາສັ່ງຕ້ອງປາກົດກ່ອນຄໍານິຍາມຂອງ
ສັນຍາລັກທີ່ມັນຫມາຍເຖິງ.
STRUC ຊື່ໂຄງສ້າງ ແລະ ENDSTRUC, ໃນເວລາທີ່ຖືກນໍາໃຊ້ເພື່ອວົງເລັບຈໍານວນຂອງ RESB, RESW ຫຼືຄ້າຍຄືກັນ
ຄໍາແນະນໍາ, ກໍານົດໂຄງສ້າງຂໍ້ມູນ. ນອກເຫນືອໄປຈາກການກໍານົດການຊົດເຊີຍຂອງ
ສະມາຊິກໂຄງສ້າງ, ການກໍ່ສ້າງຍັງກໍານົດສັນຍາລັກສໍາລັບຂະຫນາດຂອງໂຄງສ້າງ,
ເຊິ່ງພຽງແຕ່ຊື່ໂຄງສ້າງທີ່ມີ ຂະຫນາດ tacked ສຸດທ້າຍ.
FORMAT-SPECIFIC ທິດທາງ
ORG ທີ່ຢູ່ ຖືກນໍາໃຊ້ໂດຍ ເຈົ້າ ຮູບແບບຜົນຜະລິດຖານສອງ flat-form, ແລະລະບຸທີ່ຢູ່
ໃນທີ່ສຸດລະຫັດຜົນຜະລິດຈະຖືກໂຫລດ.
ກຸ່ມ grpname ພາກ1 ພາກ2... ຖືກນໍາໃຊ້ໂດຍຮູບແບບຜົນຜະລິດ obj (Microsoft 16-bit), ແລະ
ກໍານົດກຸ່ມ segment. ຮູບແບບນີ້ຍັງໃຊ້ ສູງສຸດ, ເຊິ່ງຊີ້ ນຳ ທຸກພາກສ່ວນ,
ຊື່ກຸ່ມ ແລະສັນຍາລັກທີ່ສົ່ງອອກໄປຫາໄຟລ໌ວັດຖຸຄວນຈະເປັນຕົວພິມໃຫຍ່. ໃຫ້ສັງເກດວ່າ
ການປະກອບຕົວຈິງແມ່ນຍັງອ່ອນໄຫວຕໍ່ກັບກໍລະນີ.
ຫໍສະຫມຸດ libname ຖືກນໍາໃຊ້ໂດຍ rdf ຮູບແບບຜົນຜະລິດ, ແລະເຮັດໃຫ້ເກີດການບັນທຶກການອີງໃສ່ເປັນ
ລາຍລັກອັກສອນກັບໄຟລ໌ຜົນຜະລິດທີ່ຊີ້ບອກວ່າໂຄງການຮຽກຮ້ອງໃຫ້ມີຫ້ອງສະຫມຸດສະເພາະໃດຫນຶ່ງໃນ
ສັ່ງໃຫ້ແລ່ນ.
ມາໂຄຣ ໂປຣເຊສເຊີ
macro ແຖວດຽວແມ່ນຖືກກໍານົດໂດຍໃຊ້ % ກໍານົດ or % ກໍານົດ ຄໍາສັ່ງ, ໃນຄ້າຍຄືກັນ
ຄົນອັບເດດ: ກັບ C preprocessor. ພວກເຂົາເຈົ້າສາມາດໄດ້ຮັບການ overloaded ກ່ຽວກັບຈໍານວນຂອງ
ພາລາມິເຕີ, ເຖິງແມ່ນວ່າການກໍານົດມະຫາພາກທີ່ບໍ່ມີຕົວກໍານົດການປ້ອງກັນບໍ່ໃຫ້ຄໍານິຍາມຂອງໃດໆ
ມະຫາພາກທີ່ມີຊື່ດຽວກັນໃຊ້ພາລາມິເຕີ, ແລະໃນທາງກັບກັນ. % ກໍານົດ ກໍານົດ macro ທີ່
ຊື່ກົງກັນກັບຕົວພິມນ້ອຍໃຫຍ່, ໃນຂະນະທີ່ % ກໍານົດ ກໍານົດ macro ທີ່ບໍ່ມີຕົວພິມນ້ອຍໃຫຍ່.
ມະຫາພາກຫຼາຍແຖວຖືກກຳນົດໂດຍໃຊ້ %ມະຫາພາກ ແລະ %imacro (ຄວາມແຕກຕ່າງແມ່ນຄືກັນກັບ
ລະຫວ່າງ % ກໍານົດ ແລະ % ກໍານົດ), syntax ທີ່ມີດັ່ງຕໍ່ໄປນີ້
% macro name minprm[-maxprm][+][.nolist] [ຄ່າເລີ່ມຕົ້ນ]
%endmacro
ອີກເທື່ອຫນຶ່ງ, macro ເຫຼົ່ານີ້ອາດຈະ overloaded. ປ້າຍບວກຕໍ່ທ້າຍຊີ້ບອກວ່າອັນໃດ
ຕົວກໍານົດການຫຼັງຈາກອັນສຸດທ້າຍໄດ້ຮັບການຍ່ອຍ, ດ້ວຍເຄື່ອງໝາຍຈຸດທີ່ແຍກກັນ, ເຂົ້າໄປໃນຕົວສຸດທ້າຍ
ພາລາມິເຕີ. ໄດ້ ຄ່າເລີ່ມຕົ້ນ ພາກສ່ວນສາມາດຖືກນໍາໃຊ້ເພື່ອກໍານົດຄ່າເລີ່ມຕົ້ນສໍາລັບມະຫາພາກທີ່ບໍ່ໄດ້ກໍານົດ
ຕົວກໍານົດການຫຼັງຈາກ ມິນປາຣາມ. %endm ເປັນຄໍາສັບຄ້າຍຄືທີ່ຖືກຕ້ອງສໍາລັບ %endmacro.
ເພື່ອອ້າງອີງເຖິງຕົວກໍານົດການມະຫາພາກພາຍໃນການຂະຫຍາຍມະຫາພາກ, ທ່ານໃຊ້ %1, %2 ແລະອື່ນໆ. ເຈົ້າ
ຍັງສາມາດບັງຄັບໃຫ້ພາລາມິເຕີມະຫາພາກຄວນມີລະຫັດເງື່ອນໄຂໂດຍການໃຊ້ %+1, ແລະ
ທ່ານສາມາດປ່ຽນລະຫັດເງື່ອນໄຂໂດຍການໃຊ້ % -1. ນອກນັ້ນທ່ານຍັງສາມາດກໍານົດປ້າຍຊື່ສະເພາະກັບ a
ການຮຽກເອີ້ນມະຫາພາກໂດຍການນຳໜ້າມັນດ້ວຍເຄື່ອງໝາຍ '%' ສອງເທົ່າ.
ໄຟລ໌ສາມາດຖືກລວມເຂົ້າໂດຍໃຊ້ % ລວມມີ ຄໍາສັ່ງ, ເຊິ່ງເຮັດວຽກຄືກັບ C.
preprocessor ມີ 'context stack', ເຊິ່ງອາດຈະຖືກນໍາໃຊ້ໂດຍ macro ຫນຶ່ງເພື່ອເກັບຮັກສາ
ຂໍ້ມູນທີ່ຫນຶ່ງໃນຕໍ່ມາຈະໄດ້ຮັບ. ທ່ານສາມາດຍູ້ສະພາບການໃສ່ stack ໂດຍໃຊ້
%ຍູ້, ເອົາຫນຶ່ງໂດຍໃຊ້ %ປັອບ, ແລະປ່ຽນຊື່ຂອງບໍລິບົດເທິງ (ໂດຍບໍ່ມີການລົບກວນ
ຄໍານິຍາມທີ່ກ່ຽວຂ້ອງ) ການນໍາໃຊ້ %repl. ປ້າຍກຳກັບ ແລະ % ກໍານົດ ມະຫາພາກສະເພາະທາງເທິງ
ສະພາບການອາດຈະຖືກກຳນົດໂດຍການນຳໜ້າຊື່ຂອງເຂົາເຈົ້າດ້ວຍ %$, ແລະສິ່ງທີ່ສະເພາະຕໍ່ກັບອັນຕໍ່ໄປ
context ລົງດ້ວຍ %$$, ແລະອື່ນໆ.
ການປະກອບເງື່ອນໄຂແມ່ນເຮັດໂດຍວິທີການ %ifdef, %ifndef, % ອື່ນໆ ແລະ %endif ເຊັ່ນດຽວກັນກັບ C.
(ຍົກເວັ້ນນັ້ນ %ifdef ສາມາດຍອມຮັບຊື່ macro putative ຫຼາຍ, ແລະຈະປະເມີນ TRUE ຖ້າມີ
ຂອງພວກເຂົາແມ່ນຖືກກໍານົດ.) ນອກຈາກນັ້ນ, ຄໍາແນະນໍາ %ifctx ແລະ %ifnctx ສາມາດຖືກນໍາໃຊ້ເພື່ອ
ເງື່ອນໄຂໃນຊື່ຂອງບໍລິບົດເທິງສຸດ stack context. ຊຸດທີ່ຊັດເຈນຂອງ
ຄໍາແນະນໍາ 'else-if', %eliftef, %elifndef, %elifctx ແລະ %elifnctx ຍັງໄດ້ຮັບການສະ ໜັບ ສະ ໜູນ.
ໃຊ້ nasm ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net