亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dtmfsub.asm

?? 運行環(huán)境:CCS2.1
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
**************************************************************
*   (C) COPYRIGHT TEXAS INSTRUMENTS, INC. 1996               *
**************************************************************
*   Program Name:     DTMF tone decoder                      *
*   File Name:        dtmfsub.asm                            *
*   File Description: This file contains the ASM-subroutines *
*                     used for a DTMF tone detector          *
*                     (TMS320C54x EVM version)               *
*   Author:   Gunter Schmer                                  *
*   Date:     03/24/97                                       *
*   Revision: 3.0                                            *
*   Latest working date: 03/24/97                            *
**************************************************************

	.mmregs
	.include  "globals.inc"		;global labels
	.include  "tables.inc"		;various tables


	.text


***********************************************************************
* SUBROUTINE: initoscis         (approx. 1600 cycles)
*
* Input:  ptr to DTMFENCOBJ
* Output: none
* Uses:
*
* Description:
* This subroutine initializes the digital sinusoidal oscillator
* states. It uses a generic set of states and copies them into
* the channel specific osci state buffer.
*
***********************************************************************
_initoscis
	nop
	pshm	ST0
	pshm	ST1
	pshm	AR1
	pshm	AR6
	pshm	AR7
	nop
				;---- local variables -----
				; none
				;---- arguments -----------
				; (A)    = ptr to DTMFENCOBJ
				; *SP(6) = digit

	stlm	A,AR6		;AR6 is used as pointer to struct elements
				; *AR6(0) = ptr to data
				; *AR6(1) = ptr to oscis

	ld	#0,ASM		;ASM=0
	stm	#OSCIS,AR2	;AR2 points to generic osci states
	ld	*AR6(1),A
	stlm	A,AR3		;AR3 points to channel osci states
	ld	*AR2+,16,A	;load first value
	rpt	#(16-1)		;for(k=0;k<16;k++)	{
	   st	A,*AR3+		;   store (AH)
	|| ld	*AR2+,A		;   load (AH)
				;}

	popm	AR7
	popm	AR6
	popm	AR1
	popm	ST1
	popm	ST0
	ret


***********************************************************************
* SUBROUTINE: dtmftone         (approx. 1600 cycles)
*
* Input:  ptr to DTMFENCOBJ
* Output: none
* Uses:
*
* Description:
* This subroutine computes 102 samples of DTMF tones. The routine
* expects a ptr to a encoder object in the accu A and the digit to
* be encoded on the stack.
*
***********************************************************************
_dtmftone
	nop
	pshm	ST0
	pshm	ST1
	pshm	AR1
	pshm	AR6
	pshm	AR7
	nop
	frame	#-2		;---- local variables -----
				; *SP(0) = attenuation
				;---- arguments -----------
				; (A)    = ptr to DTMFENCOBJ
				; *SP(8) = digit

	stlm	A,AR6		;AR6 is used as pointer to struct elements
				; *AR6(0) = ptr to data
				; *AR6(1) = ptr to oscis
				; *AR6(2) = attenuation of tone
	ssbx	FRCT		;set fractional mode

	;---- unpack digit and find pointers to oscillator taps ----
	ld	*SP(8),A
	stlm	A,AR0		;AR0 is offset within mapping table
	stm	#KEYS,AR2	;AR2 points to mapping table
	nop
	mar	*AR2+0		;AR2 points to mapping table value
	ld	*AR2,A		;load mapping table value
	ld	A,B		; in (A) and (B)

	and	#0f00h,A	;mask out the row portion
	sftl	A,-8		;right shift (A) by 8
	stlm	A,AR2		;AR2 contains coef-table offset for row-tone
	sftl	A,1		;left shift (A) by 1
	stlm	A,AR4		;AR4 contains oscis-table offset for row-tone

	and	#000fh,B	;mask out the column portion
	add	#4,B		;add 4 to offset to point into column portion
	stlm	B,AR3		;AR3 contains coef-table offset for col-tone
	sftl	B,1		;left shift (B) by 1
	stm	#COEFFS,AR0	;AR0 points to coef-table
	stlm	B,AR5		;AR5 contains oscis-table offset for col-tone

	mar	*AR2+0		;AR2 points to row-tone coefficient
	mar	*AR3+0		;AR3 points to col-tone coefficient
	ld	*AR6(1),A	;load ptr to data
	stlm	A,AR0		;AR0 points to oscis-table
	ld	*AR6(2),B	;load attenuation
	stl	B,*SP(0)	;store in local variable
	mar	*AR4+0		;AR4 points to row-tone osci
	mar	*AR5+0		;AR5 points to col-tone osci
	mar	*AR4+		;AR4 points to row-tone y(n-2)
	mar	*AR5+		;AR5 points to col-tone y(n-2)

	;---- generate DTMF tones ----------------------------------
	ld	*AR6(0),A
	stlm	A,AR1		;AR1 points to data
	stm	#(N-1),BRC

	rptb	osci1-1		;for(n=0;n<N;n++)   {
	 ld	#0,A		;   ---- generate row-tone sample ----- 
	 sub	*AR4-,16,A	;   (A) = -y(n-2)
	 mac	*AR4,*AR2,A	;   (A) = coef*y(n-1) - y(n-2)
	 mac	*AR4,*AR2,A	;   (A) = 2*coef*y(n-1) - y(n-2)
	 delay	*AR4		;   y(n-1) ---> y(n-2)
	 sth	A,*AR4		;   (A)    ---> y(n-1)
	 ld	#0,A		;   ---- generate col-tone sample ----- 
	 sub	*AR5-,16,A	;   (A) = -y(n-2)
	 mac	*AR5,*AR3,A	;   (A) = coef*y(n-1) - y(n-2)
	 mac	*AR5,*AR3,A	;   (A) = 2*coef*y(n-1) - y(n-2)
	 delay	*AR5		;   y(n-1) ---> y(n-2)
	 sth	A,*AR5+		;   (A)    ---> y(n-1)
	 add	*AR4+,16,A	;   (A) = row-tone + col-tone
	 mpya	*SP(0)		;   (A) = attn*(AH)
	 sth	B,*AR1+		;   (A)    ---> x(n)
osci1

	frame	#2
	nop
	popm	AR7
	popm	AR6
	popm	AR1
	popm	ST1
	popm	ST0
	ret




*******************************************************************
* SUBROUTINE: gaincntrl (approx. 575 cycles)
*
* Input: ptr to DTMFDECOBJ
* Output: none
* Uses:
*
* Description: Scales a block of input data in order to ensure 
*              no overflow when running the goertzel routine
*              approx. 6 cycles   per sample (negligable)
*
*              gain_power = (1/64) * SUM{0,N-1}[x(n)*x(n)]
*                         = (1/64) * N * signalpower
*
*              gain_lim   = (1/64) * (1/N)
*                         = minimum signalpower (-..dB)
*
*              gain_const = 0.5*sqrt(2)*sqrt(64/N)
*              gain_amp   = gain_const * sqrt(gain_power)
*              gain_lev   = 1/N
*              gain_scale = gain_lev/gain_amp
*
*              x(n) = x(n) * gain_scale
*
* FRCT=1, SXM=1
*******************************************************************
_gaincntrl:
	nop
	pshm	ST0
	pshm	ST1
	pshm	AR1
	pshm	AR6
	pshm	AR7
	nop
	frame	#-10		;---- local variables -----
				; *SP(0) = gain_pow (HI)
				; *SP(1) = gain_pow (LO)
				; *SP(2) = gain_lim (HI)
				; *SP(3) = gain_lim (LO)
				; *SP(4) = gain_amp
				; *SP(5) = gain_lev
				; *SP(6) = gain_scale
				; *SP(7) = gain_const
				; *SP(8) = gain_delta
				; *SP(9) = ptr to data
				;---- arguments -----------
				; (A)    = ptr to DTMFDECOBJ
	stlm	A,AR5
	nop
	nop
	nop
	ld	*AR5,A
	stl	A,*SP(9)

	;---- value initializations --------------------------
	ld	#0005h,16,A		;(A)  = 00050000h
	or	#0505h,A		;(A)  = 00050505h = 1/(64*N) (Q31)
	sth	A,*SP(2)		;(A)  --> gain_lim  (32bit)
	stl	A,*SP(3)
	ld	#00E3h,A		;(AL) = 00E3h = (0.5*sqrt(2))/N
	stl	A,*SP(5)		;(AL) --> gain_lev  (16bit)
	ld	#6564h,A		;(AL) = 6564h = sqrt(64/102)
	stl	A,*SP(7)		;(AL) --> gain_const
	ld	#4000h,A		;(AL) = 4000h = 0.5
	stl	A,*SP(8)		;(AL) --> gain_delta
	
	ssbx	FRCT
	;---- compute signal power ---------------------------
	ld	*SP(9),A
	stlm	A,AR2			;AR2 points to data buffer
	rptz	B,#(N-1)		;for(n=0;n<N-1;n++)
	 squra	*AR2+,B			;  (B)=(B)+x(n)*x(n)
	sfta	B,-6			;(B)=(1/64)*(B)
	sth	B,*SP(0)		;(B) --> gain_pow   (32bit)
	stl	B,*SP(1)		;        gain_pow = (N/64)*sigpower
	ld	*SP(2),16,A		;(A) = gain_lim = 1/(64*N)  (32bit)
	or	*SP(3),A
	sub	A,B			;(B) = gain_pow - gain_lim


	bc	gain2,BLEQ		;if(gain_pow > gain_lim)
					;{
	;---- compute gain_amp = sqrt(gain_pow) -------------
	st	#4000h,*SP(4)		;   initialize gain_amp estimate
	st	#4000h,*SP(8)		;   initialize gain_delta to 0.5
	mvmm	SP,AR2
	mar	*+AR2(8)		;   AR2 points to gain_delta
	stm	#(sqrt_iterations-1),BRC

	rptbd	sqrtloopend-1
	squr	*SP(4),A		;   (A) = yold*yold
	dsub	*SP(0),A		;   (A) = yold*yold - x
sqrtloop
	bcd	sqrt1,AGT
	ld	*SP(4),16,B		;   (B) = yold
	sub	*AR2,15,B		;   (B) = yold - (1/2)*delta
					;   if(y needs to be larger)
	add	*AR2,16,B		;     (B) = yold + (1/2)*delta
sqrt1	sth	B,*SP(4)		;   (BH) --> ynew
	ld	*AR2,15,A		;   (AH) = (1/2)delta
	sth	A,*AR2			;   (AH) --> delta new
	squr	*SP(4),A			
	dsub	*SP(0),A		;   (A) = yold*yold - x
sqrtloopend	

	;---- compute gain_amp = sqrt(64/N)*gain_amp --------
	ld	*SP(7),T		;   (T) = gain_const
	mpy	*SP(4),A		;   (A)=sqrt(64/102)*gain_amp
	sth	A,*SP(4)		;   (AH) --> gain_amp

	;---- compute gain_lev/gain_amp ---------------------
	ld	*SP(5),16,A		;   (AH) = gain_lev
	rpt	#(16-1)
	 subc	*SP(4),A		;   compute (gain_lev/gain_amp)
	and	#0ffffh,A		;   retain quotient (AL), mask remainder
	sfta	A,15			;   shift quotient into high accu
	sth	A,*SP(6)		;   (AH) --> gain_scale

	;---- scale data with (gain_lev/gain_amp) ---------
	ld	*SP(9),A		;
	stlm	A,AR2			;   AR2 points to data
	mvmm	SP,AR3			;
	mar	*+AR3(6)		;   AR3 points to gain_scale
	stm	#(N-1),BRC		;
	rptb	gain1-1			;   for(n=0;n<N;n++)
	mpy	*AR2,*AR3,A		;      (A) = x(n)*(gain_lev/gain_amp)
	sth	A,*AR2+			;      (AH) --> x(n)
gain1					;}
	
gain2	frame	#10
	nop
	popm	AR7
	popm	AR6
	popm	AR1
	popm	ST1
	popm	ST0
	ret


***********************************************************************
* SUBROUTINE: goertzel         (w/o OV check approx. 4637 cycles)
*
* Input:  ptr to DTMFDECOBJ
* Output: none
* Uses:
*
* Description:
* This new version of the subroutine operates on a block of data
* 102 samples long and computes the following difference equation
* It does thereby not check for overflow and assumes a prescaling 
* gain control function to protect from possible overflow.
* Since 2nd harmonic frequencies are computed conditionally in
* subroutine dtmfchecks(), this routine now only computes the
* fundamental frequency information (8 freqs)
* This routine also computes the energy template for the 8 fundamental
* frequencies. It thereafter sets the filter taps to zero for the next
* round.
*
*
***********************************************************************
_goertzel:
	nop
	pshm	ST0
	pshm	ST1
	pshm	AR1
	pshm	AR6
	pshm	AR7
				;---- local variables -----
				; none
				;---- arguments -----------
				; (A)    = ptr to DTMFDECOBJ

	rsbx	OVA		;clear overflow bit for A
	ssbx	FRCT		;set fractional mode
	stlm	A,AR5		;AR5 is used as pointer to struct elements
				; *AR5(0) = ptr to data
				; *AR5(1) = ptr to taps
				; *AR5(2) = ptr to energy template
				; *AR5(3) = digitptr
				; *AR5(4) = digitlast
				; *AR5(5) = detectstat
				; *AR5(6) = err_flags

;---------------------------------------------------------------------
; Goertzel filter computation
;
; vk(n) = 2*coef*vk(n-1) - vk(n-2) + x(n)
;
; Coefficients are in order starting with location COEF1st
; COEF1st .word	xxxx	;coef1
;	  .word	yyyy	;coef2
;	  ....
;
; Data vk(n-1), vk(n-2) is ordered as follows
;	v9(n-1)
;	v9(n-2)  column's second harm
;	v8(n-1)
;	v8(n-2)  row's 2nd harm
;
;	v7(n-1)
;	v7(n-2)
;	....
;	v0(n-1)
;	v0(n-2)  <--AR2
;
; FRCT=1, SXM=1
;
;---------------------------------------------------------------------
	ld	*AR5,A		;
	stlm	A,AR1		;AR1 points to data buffer
	ld	*AR5(1),A	;
	add	#19,A		;
	stlm	A,AR6		;AR6 points to end of taps block
	stm	#(N-1),BRC
	
goer1	rptb	goer2-1		;for(n=0;n<N;n++)     {

	mvmm	AR6,AR2		;   AR2 points to end of taps block
	stm	#COEF1st,AR3	;   AR3 points to Coefficients
	ld	*AR1+,16,A	;   (A) = x(n)
				;   ------ filter k=0 -----------------
	sub	*AR2-,16,A,B	;   (B) = -vk(n-2) + x(n)
	mac	*AR2,*AR3,B	;   (B) = coef*vk(n-1) - vk(n-2) +x(n)
	mac	*AR2,*AR3+,B	;   (B) = 2*coef*vk(n-1) - vk(n-2) +x(n)
	delay	*AR2		;   vk(n-1) ---> vk(n-2)
	sth	B,*AR2-		;   (B)     ---> vk(n-1)
				;   ------ filter k=1 -----------------
	sub	*AR2-,16,A,B	;   (B) = -vk(n-2) + x(n)
	mac	*AR2,*AR3,B	;   (B) = coef*vk(n-1) - vk(n-2) +x(n)
	mac	*AR2,*AR3+,B	;   (B) = 2*coef*vk(n-1) - vk(n-2) +x(n)
	delay	*AR2		;   vk(n-1) ---> vk(n-2)
	sth	B,*AR2-		;   (B)     ---> vk(n-1)
				;   ------ filter k=2 -----------------
	sub	*AR2-,16,A,B	;   (B) = -vk(n-2) + x(n)
	mac	*AR2,*AR3,B	;   (B) = coef*vk(n-1) - vk(n-2) +x(n)
	mac	*AR2,*AR3+,B	;   (B) = 2*coef*vk(n-1) - vk(n-2) +x(n)
	delay	*AR2		;   vk(n-1) ---> vk(n-2)
	sth	B,*AR2-		;   (B)     ---> vk(n-1)
				;   ------ filter k=3 -----------------
	sub	*AR2-,16,A,B	;   (B) = -vk(n-2) + x(n)
	mac	*AR2,*AR3,B	;   (B) = coef*vk(n-1) - vk(n-2) +x(n)
	mac	*AR2,*AR3+,B	;   (B) = 2*coef*vk(n-1) - vk(n-2) +x(n)
	delay	*AR2		;   vk(n-1) ---> vk(n-2)
	sth	B,*AR2-		;   (B)     ---> vk(n-1)
				;   ------ filter k=4 -----------------
	sub	*AR2-,16,A,B	;   (B) = -vk(n-2) + x(n)
	mac	*AR2,*AR3,B	;   (B) = coef*vk(n-1) - vk(n-2) +x(n)
	mac	*AR2,*AR3+,B	;   (B) = 2*coef*vk(n-1) - vk(n-2) +x(n)
	delay	*AR2		;   vk(n-1) ---> vk(n-2)
	sth	B,*AR2-		;   (B)     ---> vk(n-1)
				;   ------ filter k=5 -----------------
	sub	*AR2-,16,A,B	;   (B) = -vk(n-2) + x(n)
	mac	*AR2,*AR3,B	;   (B) = coef*vk(n-1) - vk(n-2) +x(n)
	mac	*AR2,*AR3+,B	;   (B) = 2*coef*vk(n-1) - vk(n-2) +x(n)
	delay	*AR2		;   vk(n-1) ---> vk(n-2)
	sth	B,*AR2-		;   (B)     ---> vk(n-1)
				;   ------ filter k=6 -----------------
	sub	*AR2-,16,A,B	;   (B) = -vk(n-2) + x(n)
	mac	*AR2,*AR3,B	;   (B) = coef*vk(n-1) - vk(n-2) +x(n)
	mac	*AR2,*AR3+,B	;   (B) = 2*coef*vk(n-1) - vk(n-2) +x(n)
	delay	*AR2		;   vk(n-1) ---> vk(n-2)
	sth	B,*AR2-		;   (B)     ---> vk(n-1)
				;   ------ filter k=7 -----------------
	sub	*AR2-,16,A,B	;   (B) = -vk(n-2) + x(n)
	mac	*AR2,*AR3,B	;   (B) = coef*vk(n-1) - vk(n-2) +x(n)
	mac	*AR2,*AR3+,B	;   (B) = 2*coef*vk(n-1) - vk(n-2) +x(n)
	delay	*AR2		;   vk(n-1) ---> vk(n-2)
	sth	B,*AR2-		;   (B)     ---> vk(n-1)
goer2				;}

;-------------------------------------------------------------------------
; Energy computation for fundamental frequencies (8 freqs)
;
;  y(N)y*(N) = vk(N)*vk(N) - 2*coef*vk(N)*vk(N-1) + vk(N-1)*vk(N-1)
;
; Coefficients are in pmem in order starting with location COEF1st
; COEF1st .word	xxxx	;coef0  <--AR3
; 	  .word	yyyy	;coef1
;	  ....
;
; Data vk(n-1), vk(n-2) is ordered
;	v9(n-1)
;	v9(n-2)   2nd harm column
;	v8(n-1)
;	v8(n-2)   2nd harm row
;	v7(n-1)
;	v7(n-2)
;	....
;	v0(n-1)
;	v0(n-2)  <--AR2
;
; FRCT=1, SXM=1
;
;-------------------------------------------------------------------------
goer3	ld	*AR5(1),A
	add	#19,A
	stlm	A,AR2		;AR2 points to end of filter taps block
	stm	#COEF1st,AR3	;AR3 points to beg of coefficient table
	ld	*AR5(2),A
	stlm	A,AR4		;AR4 points to energy template
	stm	#(8-1),BRC

	rptb	goer4-1		;for(k=0;k<8;k++)   {
	 ld	*AR2,16,A	; (A) = vk(N-1), A(32:16) loaded
	 mpya	*AR2-		; (B) = vk(N-1)*vk(N-1), (T) = vk(N-1)
	 mpy	*AR2,A		; (A) = vk(N)*vk(N-1)
	 ld	*AR3+,T		; (T) = coef
	 mpya	A		; (A) = coef*vk(N)*vk(N-1)
	 sub	A,1,B		; (B) = -2*coef*vk(N)*vk(N-1) + vk(N-1)*vk(N-1)
	 ld	*AR2,T		; (T) = vk(N)
	 mac	*AR2-,B		; (B) = vk(N)*vk(N) - 2*coef*vk(N)*vk(N-1) + vk(N-1)*vk(N-1)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆91精品91久久久的内涵| 国产在线麻豆精品观看| 2欧美一区二区三区在线观看视频| 国内精品伊人久久久久av一坑| 中文字幕国产精品一区二区| 99久久精品国产一区二区三区| 欧美激情一区在线观看| 欧美最新大片在线看| 精品制服美女丁香| 国产精品久久久久久久久久久免费看| 一本色道久久加勒比精品| 免费观看日韩电影| 国产精品女同互慰在线看| 欧美日韩国产一二三| 成人理论电影网| 一区二区三区中文免费| 久久精子c满五个校花| 欧美日韩大陆一区二区| 精品一区在线看| 一个色妞综合视频在线观看| 久久久久久久av麻豆果冻| 色综合久久中文综合久久牛| 国产真实精品久久二三区| 国产精品久99| 久久美女艺术照精彩视频福利播放| 91极品视觉盛宴| 成人午夜精品一区二区三区| 理论片日本一区| 国产精品免费视频一区| 日韩精品在线看片z| 在线看国产日韩| 99久久99久久精品国产片果冻| 免费高清在线视频一区·| 亚洲午夜在线电影| 中文字幕字幕中文在线中不卡视频| 精品国产凹凸成av人网站| 91.com视频| 91免费精品国自产拍在线不卡| 国产一区二区三区四区在线观看| 日韩精品一级中文字幕精品视频免费观看 | 国产色综合久久| 777色狠狠一区二区三区| 色婷婷香蕉在线一区二区| av在线综合网| 成人免费av网站| 国产成人精品网址| 91女人视频在线观看| 欧美亚洲一区二区在线| 91麻豆精品国产91久久久使用方法| 91精品国模一区二区三区| 2024国产精品| 综合电影一区二区三区| 亚洲精品午夜久久久| 亚洲国产精品久久不卡毛片| 丝袜诱惑亚洲看片| 韩国午夜理伦三级不卡影院| 高清在线观看日韩| 91黄视频在线| 精品国偷自产国产一区| 中文在线一区二区| 亚洲伊人色欲综合网| 蜜臀久久久久久久| 国产一区美女在线| 99精品欧美一区二区蜜桃免费| 在线观看国产日韩| 欧美xxxxxxxx| 亚洲精品自拍动漫在线| 日本视频一区二区| 成人国产在线观看| 欧美麻豆精品久久久久久| 久久久精品影视| 亚洲午夜三级在线| 国产精品综合av一区二区国产馆| fc2成人免费人成在线观看播放 | 亚洲成a人v欧美综合天堂| 国产成人在线视频播放| 成人激情综合网站| 91精品国产欧美日韩| 国产精品久久夜| 丝袜美腿一区二区三区| 成人久久18免费网站麻豆| 欧美精品日韩一本| 国产精品美女久久久久久2018| 亚洲高清在线精品| 成人国产亚洲欧美成人综合网| 欧美二区三区91| 亚洲欧洲av色图| 精品一区二区三区免费| 在线看日本不卡| 欧美激情一区二区三区蜜桃视频| 天堂午夜影视日韩欧美一区二区| 成人免费视频视频在线观看免费| 欧美精品视频www在线观看| 国产精品毛片无遮挡高清| 麻豆精品久久久| 日本道色综合久久| 久久久久国产精品厨房| 青青草精品视频| 色哟哟精品一区| 国产欧美视频一区二区| 喷水一区二区三区| 色综合视频在线观看| 欧美激情一区三区| 国产一区二区影院| 欧美一区二区精美| 亚洲18色成人| 色猫猫国产区一区二在线视频| 久久久久久久免费视频了| 日韩二区三区在线观看| 91麻豆精东视频| 国产精品国产三级国产普通话三级| 精品一区二区三区在线视频| 欧美精品vⅰdeose4hd| 一区二区在线观看视频| 成人av电影在线| 中日韩av电影| 国产精品亚洲а∨天堂免在线| 欧美一级片免费看| 午夜精品福利一区二区三区蜜桃| 色狠狠色狠狠综合| 亚洲精品久久久蜜桃| 91蜜桃网址入口| 国产精品丝袜久久久久久app| 国产一区二区h| 久久综合色之久久综合| 卡一卡二国产精品| 69av一区二区三区| 丝袜亚洲另类欧美| 欧美一区二区在线看| 三级在线观看一区二区 | 在线观看免费亚洲| 一区二区三区蜜桃网| 色丁香久综合在线久综合在线观看| 1000部国产精品成人观看| 成人国产亚洲欧美成人综合网| 久久久不卡网国产精品一区| 国产精品亚洲专一区二区三区| 亚洲欧美日韩一区二区三区在线观看| 粉嫩蜜臀av国产精品网站| 中文字幕乱码日本亚洲一区二区| 国产一区二区三区四区五区入口| 国产亚洲人成网站| 成人av在线影院| 一区二区三区日韩| 欧美色倩网站大全免费| 日韩综合在线视频| 精品国产乱码久久久久久牛牛| 国产一区二区三区免费在线观看| 久久久99久久| 一本大道久久a久久精品综合| 亚洲国产中文字幕| 日韩视频一区在线观看| 国产成人免费xxxxxxxx| 亚洲裸体xxx| 51精品视频一区二区三区| 极品少妇xxxx偷拍精品少妇| 国产欧美一区二区精品性| 91美女片黄在线观看| 天堂久久一区二区三区| 精品国产伦一区二区三区免费| 国产成人av一区二区三区在线 | 国产精品一区在线观看你懂的| 国产精品私人影院| 欧美日韩视频在线观看一区二区三区| 美女性感视频久久| 国产精品成人一区二区三区夜夜夜 | 午夜精品久久久久久久久久| 精品少妇一区二区| 成人v精品蜜桃久久一区| 亚洲二区视频在线| 2024国产精品| 欧美午夜精品电影| 国产精品77777| 午夜一区二区三区在线观看| 久久综合久久综合久久| 91在线国产观看| 久久99精品视频| 亚洲精品视频免费观看| 欧美电视剧在线观看完整版| 一本色道亚洲精品aⅴ| 黄网站免费久久| 亚洲国产一区二区视频| 欧美国产日本韩| 在线不卡a资源高清| jizz一区二区| 九九精品一区二区| 亚洲成年人影院| 亚洲欧美在线视频| 日韩一级免费一区| 色欧美88888久久久久久影院| 国产精品资源在线| 天天影视网天天综合色在线播放 | 日韩理论片一区二区| 精品毛片乱码1区2区3区| 一本到高清视频免费精品| 国产精品 日产精品 欧美精品| 五月天亚洲婷婷| 亚洲久草在线视频| 国产精品久久久久久久蜜臀| 亚洲精品一线二线三线无人区|