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

📄 nasm.h

📁 this the best mp3 encoder
💻 H
字号:
;	Copyright (C) 1999 URURI;	nasm�ѥޥ���;	1999/08/21 ���;	1999/10/10 ���Ĥ��ɲ�;	1999/10/27 aout�б�;	1999/11/07 pushf, popf ��NASM�ΥХ��б�;	1999/12/02 for BCC ( Thanks to Miquel ); for Windows Visual C++        -> define WIN32;             Borland or cygwin ->        WIN32 and COFF; for FreeBSD 2.x               ->        AOUT; for TownsOS                   ->        __tos__; otherwise                     ->   none;̾����դ���BITS 32%ifdef YASM	%define segment_code segment .text align=16 use32	%define segment_data segment .data align=16 use32	%define segment_bss  segment .bss align=16 use32%elifdef WIN32	%define segment_code segment .text align=16 class=CODE use32	%define segment_data segment .data align=16 class=DATA use32%ifdef __BORLANDC__	%define segment_bss  segment .data align=16 class=DATA use32%else	%define segment_bss  segment .bss align=16 class=DATA use32%endif%elifdef AOUT	%define _NAMING	%define segment_code segment .text	%define segment_data segment .data	%define segment_bss  segment .bss%else%ifidn __OUTPUT_FORMAT__,elf	section .note.GNU-stack progbits noalloc noexec nowrite align=1%endif	%define segment_code segment .text align=16 class=CODE use32	%define segment_data segment .data align=16 class=DATA use32	%define segment_bss  segment .bss align=16 class=DATA use32%endif%ifdef WIN32	%define _NAMING%endif%ifdef __tos__group CGROUP textgroup DGROUP data%endif;ñ�����ư��������%idefine float dword%idefine fsize 4%idefine fsizen(a) (fsize*(a));��ɷ��%idefine wsize 2%idefine wsizen(a) (wsize*(a))%idefine dwsize 4%idefine dwsizen(a) (dwsize*(a));REG%define r0 eax%define r1 ebx%define r2 ecx%define r3 edx%define r4 esi%define r5 edi%define r6 ebp%define r7 esp;MMX,3DNow!,SSE%define pmov	movq%define pmovd	movd%define pupldq	punpckldq%define puphdq	punpckhdq%define puplwd	punpcklwd%define puphwd	punpckhwd%define xm0 xmm0%define xm1 xmm1%define xm2 xmm2%define xm3 xmm3%define xm4 xmm4%define xm5 xmm5%define xm6 xmm6%define xm7 xmm7;�����åե��Ѥ�4�ʥޥ���%define R4(a,b,c,d) (a*64+b*16+c*4+d);C�饤���ʴʰץޥ���%imacro globaldef 1	%ifdef _NAMING		%define %1 _%1	%endif	global %1%endmacro%imacro externdef 1	%ifdef _NAMING		%define %1 _%1	%endif	extern %1%endmacro%imacro proc 1	%push	proc	%ifdef _NAMING		global _%1	%else		global %1	%endif	align 32%1:_%1:	%assign %$STACK 0	%assign %$STACKN 0	%assign %$ARG 4%endmacro%imacro endproc 0	%ifnctx proc		%error expected 'proc' before 'endproc'.	%else		%if %$STACK > 0			add esp, %$STACK		%endif		%if %$STACK <> (-%$STACKN)			%error STACKLEVEL mismatch check 'local', 'alloc', 'pushd', 'popd'		%endif		ret		%pop	%endif%endmacro%idefine sp(a) esp+%$STACK+a%imacro arg 1	%00	equ %$ARG	%assign %$ARG %$ARG+%1%endmacro%imacro local 1	%assign %$STACKN %$STACKN-%1	%00 equ %$STACKN%endmacro%imacro alloc 0	sub esp, (-%$STACKN)-%$STACK	%assign %$STACK (-%$STACKN)%endmacro%imacro pushd 1-*	%rep %0		push %1		%assign %$STACK %$STACK+4	%rotate 1	%endrep%endmacro%imacro popd 1-*	%rep %0	%rotate -1		pop %1		%assign %$STACK %$STACK-4	%endrep%endmacro; bug of NASM-0.98%define pushf db 0x66, 0x9C%define popf  db 0x66, 0x9D%define	ge16(n)		((((n) / 16)*0xFFFFFFFF) & 0xFFFFFFFF)%define	ge15(n)		((((n) / 15)*0xFFFFFFFF) & 0xFFFFFFFF)%define	ge14(n)		((((n) / 14)*0xFFFFFFFF) & 0xFFFFFFFF)%define	ge13(n)		((((n) / 13)*0xFFFFFFFF) & 0xFFFFFFFF)%define	ge12(n)		((((n) / 12)*0xFFFFFFFF) & 0xFFFFFFFF)%define	ge11(n)		((((n) / 11)*0xFFFFFFFF) & 0xFFFFFFFF)%define	ge10(n)		((((n) / 10)*0xFFFFFFFF) & 0xFFFFFFFF)%define	ge9(n)		((((n) /  9)*0xFFFFFFFF) & 0xFFFFFFFF)%define	ge8(n)		(ge9(n) | ((((n) /  8)*0xFFFFFFFF) & 0xFFFFFFFF))%define	ge7(n)		(ge9(n) | ((((n) /  7)*0xFFFFFFFF) & 0xFFFFFFFF))%define	ge6(n)		(ge9(n) | ((((n) /  6)*0xFFFFFFFF) & 0xFFFFFFFF))%define	ge5(n)		(ge9(n) | ((((n) /  5)*0xFFFFFFFF) & 0xFFFFFFFF))%define	ge4(n)		(ge5(n) | ((((n) /  4)*0xFFFFFFFF) & 0xFFFFFFFF))%define	ge3(n)		(ge5(n) | ((((n) /  3)*0xFFFFFFFF) & 0xFFFFFFFF))%define	ge2(n)		(ge3(n) | ((((n) /  2)*0xFFFFFFFF) & 0xFFFFFFFF))%define	ge1(n)		(ge2(n) | ((((n) /  1)*0xFFFFFFFF) & 0xFFFFFFFF)); macro to align for begining of loop; %1   does not align if it LE bytes to next alignment ;      4..16 ;      default is 12%imacro	loopalignK6	0-1 12 %%here:	times (($$-%%here) & 15 & ge1(($$-%%here) & 15) & ~ge4(($$-%%here) & 15)) nop	times (1                & ge4(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) jmp short %%skip	times (((($$-%%here) & 15)-2) & ge4(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) nop%%skip:%endmacro%imacro	loopalignK7	0-1 12 %%here:	times (1 & ge1(($$-%%here) & 15)  & ~ge2(($$-%%here) & 15)  & ~ge%1(($$-%%here) & 15)) nop	times (1 & ge2(($$-%%here) & 15)  & ~ge3(($$-%%here) & 15)  & ~ge%1(($$-%%here) & 15)) DB 08Bh,0C0h	times (1 & ge3(($$-%%here) & 15)  & ~ge4(($$-%%here) & 15)  & ~ge%1(($$-%%here) & 15)) DB 08Dh,004h,020h	times (1 & ge4(($$-%%here) & 15)  & ~ge5(($$-%%here) & 15)  & ~ge%1(($$-%%here) & 15)) DB 08Dh,044h,020h,000h	times (1 & ge5(($$-%%here) & 15)  & ~ge6(($$-%%here) & 15)  & ~ge%1(($$-%%here) & 15)) DB 08Dh,044h,020h,000h,090h	times (1 & ge6(($$-%%here) & 15)  & ~ge7(($$-%%here) & 15)  & ~ge%1(($$-%%here) & 15)) DB 08Dh,080h,0,0,0,0	times (1 & ge7(($$-%%here) & 15)  & ~ge8(($$-%%here) & 15)  & ~ge%1(($$-%%here) & 15)) DB 08Dh,004h,005h,0,0,0,0	times (1 & ge8(($$-%%here) & 15)  & ~ge9(($$-%%here) & 15)  & ~ge%1(($$-%%here) & 15)) DB 08Dh,004h,005h,0,0,0,0,90h	times (1 & ge9(($$-%%here) & 15)  & ~ge10(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) DB 0EBh,007h,90h,90h,90h,90h,90h,90h,90h	times (1 & ge10(($$-%%here) & 15) & ~ge11(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) DB 0EBh,008h,90h,90h,90h,90h,90h,90h,90h,90h	times (1 & ge11(($$-%%here) & 15) & ~ge12(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) DB 0EBh,009h,90h,90h,90h,90h,90h,90h,90h,90h,90h	times (1 & ge12(($$-%%here) & 15) & ~ge13(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) DB 0EBh,00Ah,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h	times (1 & ge13(($$-%%here) & 15) & ~ge14(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) DB 0EBh,00Bh,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h	times (1 & ge14(($$-%%here) & 15) & ~ge15(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) DB 0EBh,00Ch,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h	times (1 & ge15(($$-%%here) & 15) & ~ge16(($$-%%here) & 15) & ~ge%1(($$-%%here) & 15)) DB 0EBh,00Dh,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h,90h%%skip:%endmacro%imacro	loopalign	0-1 12 	loopalignK7 %1%endmacro%define PACK(x,y,z,w)	(x*64+y*16+z*4+w)%ifidn __OUTPUT_FORMAT__,elf%idefine PIC_BASE(A) _GLOBAL_OFFSET_TABLE_ + $$ - $ wrt ..gotpc%idefine PIC_EBP_REL(A) ebp + A wrt ..gotoff%macro PIC_OFFSETTABLE 0extern  _GLOBAL_OFFSET_TABLE_get_pc.bp:	mov ebp, [esp]	retn%endmacro%else%define PIC_BASE(A) (0)%define PIC_EBP_REL(A) (A)%macro PIC_OFFSETTABLE 0get_pc.bp:	mov ebp, [esp]	retn%endmacro%endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -