⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 assyntax.h

📁 winNT技术操作系统,国外开放的原代码和LIUX一样
💻 H
📖 第 1 页 / 共 5 页
字号:
#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 + -