oRESDRESDresd}Pseudo-Instruction declaring uninitialized data. Double Word, Single Precision (4 bytes, 32 bit). RESD is a synonym of DWORD.%LOCAL%LOCAL%local·The %LOCAL directive is used to simplify the use of local temporary stack variables allocated in a stack frame. Automatic local variables in C are an example of this kind of variable. __UTC_TIME__ __UTC_TIME__ __utc_time__¤Gives the assembly time in universal time (UTC) as a string in ISO 8601 format ("HH:MM:SS"). If the host platform doesn't provide UTC time, this macro is undefined.%XDEFINE%XDEFINE%xdefineUDefine Single-line macros that is resolved at the time the embedded macro is defined.%UNDEF%UNDEF%undef<Single-line macros can be removed with the %undef directive.%SUBSTR%SUBSTR%substrXIndividual letters or substrings in strings can be extracted using the %substr operator.%MACRO%MACRO%macroStart a multiline macro%REPL%REPL%replRenaming a Context.%ASSIGN%ASSIGN%assignDefine single-line macros.%ERROR%ERROR%errordThe preprocessor directive %error will cause NASM to report an error if it occurs in assembled code. __NASM_VER__ __NASM_VER__ __nasm_ver__HExpands to a string which defines the version number of nasm being used.%UNMACRO%UNMACRO%unmacroÒMulti-line macros can be removed with the %unmacro directive. Unlike the %undef directive, however, %unmacro takes an argument specification, and will only remove exact matches with that argument specification.XMMWORDXMMWORDxmmwordDPseudo-Instruction declaring uninitialized data. (16 bytes, 128 bit) .INTEL_SYNTAX .INTEL_SYNTAX .intel_syntaxswitch to INTEL syntax%ARG%ARG%argVThe %arg directive is used to simplify the handling of parameters passed on the stack.%INCLUDE%INCLUDE%includehInserts source code from the source file given by filename into the current source file during assembly.%IDEFTOK%IDEFTOK%ideftokÆ%deftok, and its case-insensitive counterpart %ideftok, define or redefine a single-line macro without parameters but converts the second parameter, after string conversion, to a sequence of tokens.TIMESTIMEStimesGThe TIMES prefix causes the instruction to be assembled multiple times.WORDWORDwordWPseudo-Instruction declaring uninitialized data. Word, Half Precision (2 bytes, 16 bit)RESYRESYresyaPseudo-Instruction declaring uninitialized data. (32 bytes, 256 bit). RESY is a synonym of YWORD. %PATHSEARCH %PATHSEARCH %pathsearchSearch the Include Path.RESORESOreso~Pseudo-Instruction declaring uninitialized data. IEEE 754-2008 Quad Precision (16 bytes, 128 bit), RESO is a synonym of OWORD.%DEFINE%DEFINE%defineVDefine Single-line macros that is resolved at the time the embedded macro is expanded.%REP%REP%repèThe directives %rep and %endrep (%rep takes a numeric argument, which can be an expression; %endrep takes no arguments) can be used to enclose a chunk of code, which is then replicated as many times as specified by the preprocessor.__NASM_MINOR____NASM_MINOR____nasm_minor__HExpands to the minor level part of th version number of NASM being used.TWORDTWORDtword_Pseudo-Instruction declaring uninitialized data. Extended (Double) Precision (10 bytes, 80 bit)%ELSE%ELSE%elseConditional Assembly.%IFDEF%IFDEF%ifdef$Testing Single-Line Macro Existence.BITSBITSbitsÄThe BITS directive specifies whether NASM should generate code designed to run on a processor operating in 16-bit mode, 32-bit mode or 64-bit mode. The syntax is BITS XX, where XX is 16, 32 or 64.%ENDIF%ENDIF%endifConditional Assembly.%IFENV%IFENV%ifenv¾Test If Environment Variable Exists. The conditional assembly construct %ifenv assembles the subsequent code if and only if the environment variable referenced by the %!env directive exists.%WARNING%WARNING%warningŠThe preprocessor directive %warning will cause NASM to report an warning (but allows assembly to continue) if it occurs in assembled code.___NASM_PATCHLEVEL_____NASM_PATCHLEVEL_____nasm_patchlevel__HExpands to the patch level part of th version number of NASM being used.DTDTdtxPseudo-Instruction declaring initialized data. Extended (Double) Precision (10 bytes, 80 bit). DT is a synonym of TBYTE.ZMMWORDZMMWORDzmmwordDPseudo-Instruction declaring uninitialized data. (64 bytes, 512 bit)__NASM_VERSION_ID____NASM_VERSION_ID____nasm_version_id__ùExpands to a dword integer representing the full version number of the version of nasm being used. The value is the equivalent to __NASM_MAJOR__, __NASM_MINOR__, __NASM_SUBMINOR__ and ___NASM_PATCHLEVEL__ concatenated to produce a single doubleword.DZDZdz]Pseudo-Instruction declaring initialized data. (64 bytes, 512 bit). DZ is a synonym of ZWORD.INCLUDEINCLUDEincludehInserts source code from the source file given by filename into the current source file during assembly.SDWORDSDWORDsdwordgPseudo-Instruction declaring uninitialized data. Signed Double Word, Single Precision (4 bytes, 32 bit)%IF%IF%ifConditional Assembly.%IFMACRO%IFMACRO%ifmacro«Testing Multi-Line Macro Existence. The %ifmacro directive operates in the same way as the %ifdef directive, except that it checks for the existence of a multi-line macro.%IFNUM%IFNUM%ifnumÐTesting Token Types. The conditional assembly construct %ifnum, taking one parameter (which may be blank), assembles the subsequent code if and only if the first token in the parameter exists and is a number.DYDYdy]Pseudo-Instruction declaring initialized data. (32 bytes, 256 bit). DY is a synonym of YWORD.ZWORDZWORDzwordDPseudo-Instruction declaring uninitialized data. (64 bytes, 512 bit)%IDEFSTR%IDEFSTR%idefstr×%defstr, and its case-insensitive counterpart %idefstr, define or redefine a single-line macro without parameters but converts the entire right-hand side, after macro expansion, to a quoted string before definition. %ENDMACRO %ENDMACRO %endmacro+End a multiline macro, started with %macro.%ELIF%ELIF%elifConditional Assembly.%IFID%IFID%ifidÔTesting Token Types. The conditional assembly construct %ifid, taking one parameter (which may be blank), assembles the subsequent code if and only if the first token in the parameter exists and is an identifier.%POP%POP%popCreating and Removing Contexts.%IFIDNI%IFIDNI%ifidniTesting Exact Text Identity. The construct %ifidni text1,text2 will cause the subsequent code to be assembled if and only if text1 and text2, after expanding single-line macros, are identical pieces of text (case-insensitive). Differences in white space are not counted.MMWORDMMWORDmmword^Pseudo-Instruction declaring uninitialized data. Quad word, Double Precision (8 bytes, 64 bit)BYTEBYTEbyteEPseudo-Instruction declaring uninitialized data. Byte (1 byte, 8 bit)%FATAL%FATAL%fatalaThe preprocessor directive %warning will cause NASM to terminate immediately, regardless of pass.%LINE%LINE%lineuThe %line directive is used to notify NASM that the input line corresponds to a specific line number in another file.__LINE____LINE____line__OExpands to a numeric constant giving the current line number in the input file.DBDBdb\Pseudo-Instruction declaring initialized data. Byte (1 byte, 8 bit). DB is a synonym of BYTEQWORDQWORDqword^Pseudo-Instruction declaring uninitialized data. Quad word, Double Precision (8 bytes, 64 bit)SWORDSWORDsword^Pseudo-Instruction declaring uninitialized data. Signed Word, Half Precision (2 bytes, 16 bit)YMMWORDYMMWORDymmwordDPseudo-Instruction declaring uninitialized data. (32 bytes, 256 bit)RESWRESWreswsPseudo-Instruction declaring uninitialized data. Word, Half Precision (2 bytes, 16 bit). RESW is a synonym of WORD.%IASSIGN%IASSIGN%iassign+Define case-insensitive single-line macros.%IFCTX%IFCTX%ifctx¢Testing the Context Stack. The %ifmacro directive operates in the same way as the %ifdef directive, except that it checks for the existence of a multi-line macro.DWORDDWORDdword`Pseudo-Instruction declaring uninitialized data. Double Word, Single Precision (4 bytes, 32 bit)%IFSTR%IFSTR%ifstrÐTesting Token Types. The conditional assembly construct %ifstr, taking one parameter (which may be blank), assembles the subsequent code if and only if the first token in the parameter exists and is a string.%IFTOKEN%IFTOKEN%iftokenÊTest for a Single Token. The conditional assembly construct %iftoken assembles the subsequent code if and only if the expanded parameters consist of exactly one token, possibly surrounded by whitespace.%PUSH%PUSH%pushCreating and Removing Contexts.__UTC_TIME_NUM____UTC_TIME_NUM____utc_time_num__‘Gives the assembly time in universal time (UTC) in numeric form (HHMMSS). If the host platform doesn't provide UTC time, this macro is undefined.DODOdozPseudo-Instruction declaring initialized data. IEEE 754-2008 Quad Precision (16 bytes, 128 bit), DO is a synonym of OWORD. __UTC_DATE__ __UTC_DATE__ __utc_date__¦Gives the assembly date in universal time (UTC) as a string in ISO 8601 format ("YYYY-MM-DD"). If the host platform doesn't provide UTC time, this macro is undefined.%DEFSTR%DEFSTR%defstr×%defstr, and its case-insensitive counterpart %idefstr, define or redefine a single-line macro without parameters but converts the entire right-hand side, after macro expansion, to a quoted string before definition. %IXDEFINE %IXDEFINE %ixdefinefDefine case-insensitive single-line macros that is resolved at the time the embedded macro is defined. %STACKSIZE %STACKSIZE %stacksize The %STACKSIZE directive is used in conjunction with the %arg and the %local directives. It tells NASM the default size to use for subsequent %arg and %local directives. The %stacksize directive takes one required argument which is one of flat, flat64, large or small.__NASM_SUBMINOR____NASM_SUBMINOR____nasm_subminor__KExpands to the subminor level part of th version number of NASM being used.RESQRESQresq{Pseudo-Instruction declaring uninitialized data. Quad word, Double Precision (8 bytes, 64 bit). RESQ is a synonym of QWORD.RESZRESZreszaPseudo-Instruction declaring uninitialized data. (64 bytes, 512 bit). RESZ is a synonym of ZWORD.%DEFTOK%DEFTOK%deftokÆ%deftok, and its case-insensitive counterpart %ideftok, define or redefine a single-line macro without parameters but converts the second parameter, after string conversion, to a sequence of tokens.__TIME____TIME____time__DGives the assembly time as a string in ISO 8601 format ("HH:MM:SS").%STRCAT%STRCAT%strcatXThe %strcat operator concatenates quoted strings and assign them to a single-line macro.__UTC_DATE_NUM____UTC_DATE_NUM____utc_date_num__“Gives the assembly date in universal time (UTC) in numeric form (YYYYMMDD). If the host platform doesn't provide UTC time, this macro is undefined.__NASM_MAJOR____NASM_MAJOR____nasm_major__HExpands to the major level part of th version number of NASM being used.DWDWdwoPseudo-Instruction declaring initialized data. Word, Half Precision (2 bytes, 16 bit). DW is a synonym of WORD. __TIME_NUM__ __TIME_NUM__ __time_num__1Gives the assembly time in numeric form (HHMMSS).__FILE____FILE____file__˜Expands to a string constant giving the name of the current input file (which may change through the course of assembly if %include directives are used)__POSIX_TIME____POSIX_TIME____posix_time__Expands to a number containing the number of seconds since the POSIX epoch, 1 January 1970 00:00:00 UTC; excluding any leap seconds. This is computed using UTC time if available on the host platform, otherwise it is computed using the local time as if it was UTC.OWORDOWORDowordaPseudo-Instruction declaring uninitialized data. IEEE 754-2008 Quad Precision (16 bytes, 128 bit)EQUEQUequõEQU defines a symbol to a given constant value: when EQU is used, the source line must contain a label. The action of EQU is to define the given label name to the value of its (only) operand. This definition is absolute, and cannot change later.STRUCSTRUCstruc¾Used to define a structure data type. STRUC takes one or two parameters. The first parameter is the name of the data type. The second, optional parameter is the base offset of the structure.IENDIENDiend@Used along with ISTRUC to declare instances of a structure type.SBYTESBYTEsbyteLPseudo-Instruction declaring uninitialized data. Signed Byte (1 byte, 8 bit)__OUTPUT_FORMAT____OUTPUT_FORMAT____output_format__rThe __OUTPUT_FORMAT__ standard macro holds the current Output Format, as given by the -f option or NASM's default.ALIGNALIGNalignThe ALIGN and ALIGNB macros provides a convenient way to align code or data on a word, longword, paragraph or other boundary. Normally, you can just use ALIGN in code and data sections and ALIGNB in BSS sections, and never need the second argument except for special purposes.ALIGNBALIGNBalignbThe ALIGN and ALIGNB macros provides a convenient way to align code or data on a word, longword, paragraph or other boundary. Normally, you can just use ALIGN in code and data sections and ALIGNB in BSS sections, and never need the second argument except for special purposes.ENDSTRUCENDSTRUCendstruc6Used along with STRUC to define a structure data type.DDDDddyPseudo-Instruction declaring initialized data. Double Word, Single Precision (4 bytes, 32 bit). DD is a synonym of DWORD.ISTRUCISTRUCistruc.Used to declare instances of a structure type. SECTALIGN SECTALIGN sectalignYThe SECTALIGN macros provides a way to modify alignment attribute of output file section.DQDQdqwPseudo-Instruction declaring initialized data. Quad word, Double Precision (8 bytes, 64 bit). DQ is a synonym of QWORD.%USE%USE%useInclude Standard Macro Package.INCBININCBINincbin5Includes a binary file verbatim into the output file.ATATatUsed along with ISTRUC to declare instances of a structure type. The function of the AT macro is to make use of the TIMES prefix to advance the assembly position to the correct point for the specified structure field, and then to declare the specified data.__BITS____BITS____bits__¦The __BITS__ standard macro is updated every time that the BITS mode is set using the BITS XX or [BITS XX] directive, where XX is a valid mode number of 16, 32 or 64.__DATE____DATE____date__FGives the assembly date as a string in ISO 8601 format ("YYYY-MM-DD").RESTRESTrest|Pseudo-Instruction declaring uninitialized data. Extended (Double) Precision (10 bytes, 80 bit). REST is a synonym of TBYTE.YWORDYWORDywordDPseudo-Instruction declaring uninitialized data. (32 bytes, 256 bit)%STRLEN%STRLEN%strlen?The %strlen operator assigns the length of a string to a macro. .ATT_SYNTAX .ATT_SYNTAX .att_syntaxswitch to AT&T syntax __DATE_NUM__ __DATE_NUM__ __date_num__3Gives the assembly date in numeric form (YYYYMMDD).%IFIDN%IFIDN%ifidnúTesting Exact Text Identity. The construct %ifidn text1,text2 will cause the subsequent code to be assembled if and only if text1 and text2, after expanding single-line macros, are identical pieces of text. Differences in white space are not counted.RESBRESBresb`Pseudo-Instruction declaring uninitialized data. Byte (1 byte, 8 bit). RESB is a synonym of BYTE%IFEMPTY%IFEMPTY%ifemptyÁTest for Empty Expansion. The conditional assembly construct %ifempty assembles the subsequent code if and only if the expanded parameters do not contain any tokens at all, whitespace excepted.%DEPEND%DEPEND%dependAdd Dependent Files.