📄 assyntax.h
字号:
#define XOR_L(a, b) xor L_(b), L_(a)
#define XOR_W(a, b) xor W_(b), W_(a)
#define XOR_B(a, b) xor B_(b), B_(a)
/* Floating Point Instructions */
#define F2XM1 f2xm1
#define FABS fabs
#define FADD_D(a) fadd D_(a)
#define FADD_S(a) fadd S_(a)
#define FADD2(a, b) fadd b, a
#define FADDP(a, b) faddp b, a
#define FIADD_L(a) fiadd L_(a)
#define FIADD_W(a) fiadd W_(a)
#define FBLD(a) fbld a
#define FBSTP(a) fbstp a
#define FCHS fchs
#define FCLEX fclex
#define FNCLEX fnclex
#define FCOM(a) fcom a
#define FCOM_D(a) fcom D_(a)
#define FCOM_S(a) fcom S_(a)
#define FCOMP(a) fcomp a
#define FCOMP_D(a) fcomp D_(a)
#define FCOMP_S(a) fcomp S_(a)
#define FCOMPP fcompp
#define FCOS fcos
#define FDECSTP fdecstp
#define FDIV_D(a) fdiv D_(a)
#define FDIV_S(a) fdiv S_(a)
#define FDIV2(a, b) fdiv b, a
#define FDIVP(a, b) fdivp b, a
#define FIDIV_L(a) fidiv L_(a)
#define FIDIV_W(a) fidiv W_(a)
#define FDIVR_D(a) fdivr D_(a)
#define FDIVR_S(a) fdivr S_(a)
#define FDIVR2(a, b) fdivr b, a
#define FDIVRP(a, b) fdivrp b, a
#define FIDIVR_L(a) fidivr L_(a)
#define FIDIVR_W(a) fidivr W_(a)
#define FFREE(a) ffree a
#define FICOM_L(a) ficom L_(a)
#define FICOM_W(a) ficom W_(a)
#define FICOMP_L(a) ficomp L_(a)
#define FICOMP_W(a) ficomp W_(a)
#define FILD_Q(a) fild D_(a)
#define FILD_L(a) fild L_(a)
#define FILD_W(a) fild W_(a)
#define FINCSTP fincstp
#define FINIT finit
#define FNINIT fninit
#define FIST_L(a) fist L_(a)
#define FIST_W(a) fist W_(a)
#define FISTP_Q(a) fistp D_(a)
#define FISTP_L(a) fistp L_(a)
#define FISTP_W(a) fistp W_(a)
#define FLD_X(a) fld X_(a)
#define FLD_D(a) fld D_(a)
#define FLD_S(a) fld S_(a)
#define FLD1 fld1
#define FLDL2T fldl2t
#define FLDL2E fldl2e
#define FLDPI fldpi
#define FLDLG2 fldlg2
#define FLDLN2 fldln2
#define FLDZ fldz
#define FLDCW(a) fldcw a
#define FLDENV(a) fldenv a
#define FMUL_S(a) fmul S_(a)
#define FMUL_D(a) fmul D_(a)
#define FMUL2(a, b) fmul b, a
#define FMULP(a, b) fmulp b, a
#define FIMUL_L(a) fimul L_(a)
#define FIMUL_W(a) fimul W_(a)
#define FNOP fnop
#define FPATAN fpatan
#define FPREM fprem
#define FPREM1 fprem1
#define FPTAN fptan
#define FRNDINT frndint
#define FRSTOR(a) frstor a
#define FSAVE(a) fsave a
#define FNSAVE(a) fnsave a
#define FSCALE fscale
#define FSIN fsin
#define FSINCOS fsincos
#define FSQRT fsqrt
#define FST_D(a) fst D_(a)
#define FST_S(a) fst S_(a)
#define FSTP_X(a) fstp X_(a)
#define FSTP_D(a) fstp D_(a)
#define FSTP_S(a) fstp S_(a)
#define FSTP(a) fstp a
#define FSTCW(a) fstcw a
#define FNSTCW(a) fnstcw a
#define FSTENV(a) fstenv a
#define FNSTENV(a) fnstenv a
#define FSTSW(a) fstsw a
#define FNSTSW(a) fnstsw a
#define FSUB_S(a) fsub S_(a)
#define FSUB_D(a) fsub D_(a)
#define FSUB2(a, b) fsub b, a
#define FSUBP(a, b) fsubp b, a
#define FISUB_L(a) fisub L_(a)
#define FISUB_W(a) fisub W_(a)
#define FSUBR_S(a) fsubr S_(a)
#define FSUBR_D(a) fsubr D_(a)
#define FSUBR2(a, b) fsubr b, a
#define FSUBRP(a, b) fsubrp b, a
#define FISUBR_L(a) fisubr L_(a)
#define FISUBR_W(a) fisubr W_(a)
#define FTST ftst
#define FUCOM(a) fucom a
#define FUCOMP(a) fucomp a
#define FUCOMPP fucompp
#define FWAIT fwait
#define FXAM fxam
#define FXCH(a) fxch a
#define FXTRACT fxtract
#define FYL2X fyl2x
#define FYL2XP1 fyl2xp1
#endif /* NASM_ASSEMBLER, MASM_ASSEMBLER */
/****************************************/
/* */
/* Extensions to x86 insn set - */
/* MMX, 3DNow! */
/* */
/****************************************/
#if defined(NASM_ASSEMBLER) || defined(MASM_ASSEMBLER)
#define P_ARG1(a) P_ ## a
#define P_ARG2(a, b) P_ ## b, P_ ## a
#define P_ARG3(a, b, c) P_ ## c, P_ ## b, P_ ## a
#else
#define P_ARG1(a) a
#define P_ARG2(a, b) a, b
#define P_ARG3(a, b, c) a, b, c
#endif
/* MMX */
#define MOVD(a, b) movd P_ARG2(a, b)
#define MOVQ(a, b) movq P_ARG2(a, b)
#define PADDB(a, b) paddb P_ARG2(a, b)
#define PADDW(a, b) paddw P_ARG2(a, b)
#define PADDD(a, b) paddd P_ARG2(a, b)
#define PADDSB(a, b) paddsb P_ARG2(a, b)
#define PADDSW(a, b) paddsw P_ARG2(a, b)
#define PADDUSB(a, b) paddusb P_ARG2(a, b)
#define PADDUSW(a, b) paddusw P_ARG2(a, b)
#define PSUBB(a, b) psubb P_ARG2(a, b)
#define PSUBW(a, b) psubw P_ARG2(a, b)
#define PSUBD(a, b) psubd P_ARG2(a, b)
#define PSUBSB(a, b) psubsb P_ARG2(a, b)
#define PSUBSW(a, b) psubsw P_ARG2(a, b)
#define PSUBUSB(a, b) psubusb P_ARG2(a, b)
#define PSUBUSW(a, b) psubusw P_ARG2(a, b)
#define PCMPEQB(a, b) pcmpeqb P_ARG2(a, b)
#define PCMPEQW(a, b) pcmpeqw P_ARG2(a, b)
#define PCMPEQD(a, b) pcmpeqd P_ARG2(a, b)
#define PCMPGTB(a, b) pcmpgtb P_ARG2(a, b)
#define PCMPGTW(a, b) pcmpgtw P_ARG2(a, b)
#define PCMPGTD(a, b) pcmpgtd P_ARG2(a, b)
#define PMULHW(a, b) pmulhw P_ARG2(a, b)
#define PMULLW(a, b) pmullw P_ARG2(a, b)
#define PMADDWD(a, b) pmaddwd P_ARG2(a, b)
#define PAND(a, b) pand P_ARG2(a, b)
#define PANDN(a, b) pandn P_ARG2(a, b)
#define POR(a, b) por P_ARG2(a, b)
#define PXOR(a, b) pxor P_ARG2(a, b)
#define PSRAW(a, b) psraw P_ARG2(a, b)
#define PSRAD(a, b) psrad P_ARG2(a, b)
#define PSRLW(a, b) psrlw P_ARG2(a, b)
#define PSRLD(a, b) psrld P_ARG2(a, b)
#define PSRLQ(a, b) psrlq P_ARG2(a, b)
#define PSLLW(a, b) psllw P_ARG2(a, b)
#define PSLLD(a, b) pslld P_ARG2(a, b)
#define PSLLQ(a, b) psllq P_ARG2(a, b)
#define PACKSSWB(a, b) packsswb P_ARG2(a, b)
#define PACKSSDW(a, b) packssdw P_ARG2(a, b)
#define PACKUSWB(a, b) packuswb P_ARG2(a, b)
#define PUNPCKHBW(a, b) punpckhbw P_ARG2(a, b)
#define PUNPCKHWD(a, b) punpckhwd P_ARG2(a, b)
#define PUNPCKHDQ(a, b) punpckhdq P_ARG2(a, b)
#define PUNPCKLBW(a, b) punpcklbw P_ARG2(a, b)
#define PUNPCKLWD(a, b) punpcklwd P_ARG2(a, b)
#define PUNPCKLDQ(a, b) punpckldq P_ARG2(a, b)
#define EMMS emms
/* AMD 3DNow! */
#define PAVGUSB(a, b) pavgusb P_ARG2(a, b)
#define PFADD(a, b) pfadd P_ARG2(a, b)
#define PFSUB(a, b) pfsub P_ARG2(a, b)
#define PFSUBR(a, b) pfsubr P_ARG2(a, b)
#define PFACC(a, b) pfacc P_ARG2(a, b)
#define PFCMPGE(a, b) pfcmpge P_ARG2(a, b)
#define PFCMPGT(a, b) pfcmpgt P_ARG2(a, b)
#define PFCMPEQ(a, b) pfcmpeq P_ARG2(a, b)
#define PFMIN(a, b) pfmin P_ARG2(a, b)
#define PFMAX(a, b) pfmax P_ARG2(a, b)
#define PI2FD(a, b) pi2fd P_ARG2(a, b)
#define PF2ID(a, b) pf2id P_ARG2(a, b)
#define PFRCP(a, b) pfrcp P_ARG2(a, b)
#define PFRSQRT(a, b) pfrsqrt P_ARG2(a, b)
#define PFMUL(a, b) pfmul P_ARG2(a, b)
#define PFRCPIT1(a, b) pfrcpit1 P_ARG2(a, b)
#define PFRSQIT1(a, b) pfrsqit1 P_ARG2(a, b)
#define PFRCPIT2(a, b) pfrcpit2 P_ARG2(a, b)
#define PMULHRW(a, b) pmulhrw P_ARG2(a, b)
#define FEMMS femms
#define PREFETCH(a) prefetch P_ARG1(a)
#define PREFETCHW(a) prefetchw P_ARG1(a)
/* Intel SSE */
#define ADDPS(a, b) addps P_ARG2(a, b)
#define ADDSS(a, b) addss P_ARG2(a, b)
#define ANDNPS(a, b) andnps P_ARG2(a, b)
#define ANDPS(a, b) andps P_ARG2(a, b)
/* NASM only knows the pseudo ops for these.
#define CMPPS(a, b, c) cmpps P_ARG3(a, b, c)
#define CMPSS(a, b, c) cmpss P_ARG3(a, b, c)
*/
#define CMPEQPS(a, b) cmpeqps P_ARG2(a, b)
#define CMPLTPS(a, b) cmpltps P_ARG2(a, b)
#define CMPLEPS(a, b) cmpleps P_ARG2(a, b)
#define CMPUNORDPS(a, b) cmpunordps P_ARG2(a, b)
#define CMPNEQPS(a, b) cmpneqps P_ARG2(a, b)
#define CMPNLTPS(a, b) cmpnltps P_ARG2(a, b)
#define CMPNLEPS(a, b) cmpnleps P_ARG2(a, b)
#define CMPORDPS(a, b) cmpordps P_ARG2(a, b)
#define CMPEQSS(a, b) cmpeqss P_ARG2(a, b)
#define CMPLTSS(a, b) cmpltss P_ARG2(a, b)
#define CMPLESS(a, b) cmpless P_ARG2(a, b)
#define CMPUNORDSS(a, b) cmpunordss P_ARG2(a, b)
#define CMPNEQSS(a, b) cmpneqss P_ARG2(a, b)
#define CMPNLTSS(a, b) cmpnltss P_ARG2(a, b)
#define CMPNLESS(a, b) cmpnless P_ARG2(a, b)
#define CMPORDSS(a, b) cmpordss P_ARG2(a, b)
#define COMISS(a, b) comiss P_ARG2(a, b)
#define CVTPI2PS(a, b) cvtpi2ps P_ARG2(a, b)
#define CVTPS2PI(a, b) cvtps2pi P_ARG2(a, b)
#define CVTSI2SS(a, b) cvtsi2ss P_ARG2(a, b)
#define CVTSS2SI(a, b) cvtss2si P_ARG2(a, b)
#define CVTTPS2PI(a, b) cvttps2pi P_ARG2(a, b)
#define CVTTSS2SI(a, b) cvttss2si P_ARG2(a, b)
#define DIVPS(a, b) divps P_ARG2(a, b)
#define DIVSS(a, b) divss P_ARG2(a, b)
#define FXRSTOR(a) fxrstor P_ARG1(a)
#define FXSAVE(a) fxsave P_ARG1(a)
#define LDMXCSR(a) ldmxcsr P_ARG1(a)
#define MAXPS(a, b) maxps P_ARG2(a, b)
#define MAXSS(a, b) maxss P_ARG2(a, b)
#define MINPS(a, b) minps P_ARG2(a, b)
#define MINSS(a, b) minss P_ARG2(a, b)
#define MOVAPS(a, b) movaps P_ARG2(a, b)
#define MOVHLPS(a, b) movhlps P_ARG2(a, b)
#define MOVHPS(a, b) movhps P_ARG2(a, b)
#define MOVLHPS(a, b) movlhps P_ARG2(a, b)
#define MOVLPS(a, b) movlps P_ARG2(a, b)
#define MOVMSKPS(a, b) movmskps P_ARG2(a, b)
#define MOVNTPS(a, b) movntps P_ARG2(a, b)
#define MOVNTQ(a, b) movntq P_ARG2(a, b)
#define MOVSS(a, b) movss P_ARG2(a, b)
#define MOVUPS(a, b) movups P_ARG2(a, b)
#define MULPS(a, b) mulps P_ARG2(a, b)
#define MULSS(a, b) mulss P_ARG2(a, b)
#define ORPS(a, b) orps P_ARG2(a, b)
#define RCPPS(a, b) rcpps P_ARG2(a, b)
#define RCPSS(a, b) rcpss P_ARG2(a, b)
#define RSQRTPS(a, b) rsqrtps P_ARG2(a, b)
#define RSQRTSS(a, b) rsqrtss P_ARG2(a, b)
#define SHUFPS(a, b, c) shufps P_ARG3(a, b, c)
#define SQRTPS(a, b) sqrtps P_ARG2(a, b)
#define SQRTSS(a, b) sqrtss P_ARG2(a, b)
#define STMXCSR(a) stmxcsr P_ARG1(a)
#define SUBPS(a, b) subps P_ARG2(a, b)
#define UCOMISS(a, b) ucomiss P_ARG2(a, b)
#define UNPCKHPS(a, b) unpckhps P_ARG2(a, b)
#define UNPCKLPS(a, b) unpcklps P_ARG2(a, b)
#define XORPS(a, b) xorps P_ARG2(a, b)
#define PREFETCHNTA(a) prefetchnta P_ARG1(a)
#define PREFETCHT0(a) prefetcht0 P_ARG1(a)
#define PREFETCHT1(a) prefetcht1 P_ARG1(a)
#define PREFETCHT2(a) prefetcht2 P_ARG1(a)
#define SFENCE sfence
/* Added by BrianP for FreeBSD (per David Dawes) */
#if !defined(NASM_ASSEMBLER) && !defined(MASM_ASSEMBLER) && !defined(__bsdi__)
#define LLBL(a) CONCAT(.L,a)
#define LLBL2(a,b) CONCAT3(.L,a,b)
#else
#define LLBL(a) a
#define LLBL2(a,b) CONCAT(a,b)
#endif
/* Segment overrides */
#define SEGCS D_BYTE 46
#define SEGDS D_BYTE 62
#define SEGES D_BYTE 38
#define SEGFS D_BYTE 100
#define SEGGS D_BYTE 101
/* Temporary labels: valid until next non-local label */
#ifdef NASM_ASSEMBLER
#define TLBL(a) CONCAT(.,a)
#else
#define TLBL(a) CONCAT(a,$)
#endif
/* Hidden symbol visibility support.
* If we build with gcc's -fvisibility=hidden flag, we'll need to change
* the symbol visibility mode to 'default'.
*/
#if defined(GNU_ASSEMBLER) && !defined(__DJGPP__) && !defined(__MINGW32__)
# define HIDDEN(x) .hidden x
#elif defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303 && !defined(__MINGW32__)
# pragma GCC visibility push(default)
# define HIDDEN(x) .hidden x
#else
# define HIDDEN(x)
#endif
#endif /* __ASSYNTAX_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -