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

📄 mmxquant.asm

📁 这是G.723和G.729的音频编解码的源代码
💻 ASM
字号:
.nolist
INCLUDE iammx.inc                   ; IAMMX Emulator Macros
.list

.586p
.model FLAT

.data
ALIGN 8

ShortOne DQ 01000100010001h

.const


.code


COMMENT ^	 
	 void MMXDeQuant(
		short *TempQC,
		short *rcoeff,
		int QP);
^
MMXDeQuant PROC NEAR C USES ESI EDI ECX,
			TempQC: PTR SWORD, rcoeff: PTR SWORD,
			QP: DWORD


		mov		esi,	TempQC
		mov		edi,	rcoeff
		mov		ecx,	8
		movd	mm7,	QP


		punpckldq mm7,	mm7
		pxor	mm6,	mm6

		movq	mm0,	[esi]
		packssdw  mm7,	mm7
;mm7--QP  QP  QP  QP
;mm0--L3  L2  L1  L0
		movq	mm1,	mm0
		movq	mm2,	mm0
		
Line:

		psllw	mm2,	1
		pcmpgtw	mm1,	mm6
;mm2--2*L3 2*L2 2*L1 2*L0

		por		mm1,dword ptr ShortOne
		pcmpeqw mm0,	mm6

		movq	mm6,	mm7
		psubw	mm2,	mm1

		pandn	mm6,dword ptr ShortOne
		pmullw	mm2,	mm7

		movq	mm3,	[esi+8]
		pmullw	mm6,	mm1

		paddw	mm2,	mm6
		movq	mm4,	mm3

		pandn	mm0,	mm2
		movq	mm5,	mm3

;mm0--store the result
		add		esi,	16
		pxor	mm6,	mm6



		psllw	mm5,	1
		pcmpgtw	mm4,	mm6
;mm5--2*L3 2*L2 2*L1 2*L0

		por		mm4,dword ptr ShortOne
		pcmpeqw mm3,	mm6

		movq	mm6,	mm7
		psubw	mm5,	mm4

		pandn	mm6,dword ptr ShortOne
		pmullw	mm5,	mm7

		movq	[edi],	mm0
		pmullw	mm6,	mm4

		movq	mm0,	[esi]
		paddw	mm5,	mm6

		pandn	mm3,	mm5
		pxor	mm6,	mm6
;mm3--store the result
		
		movq	mm1,	mm0
		movq	mm2,	mm0

		movq	[edi+8],mm3

		add		edi,	16
		dec		ecx
		jnz		Line	

		emms
		ret

MMXDeQuant ENDP


END


				


⌨️ 快捷键说明

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