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

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

?? dechuff.s

?? samsung 9908DVD源代碼,
?? S
字號:
;---------------------------------------------------------------------------------
;		The following program will decoding MP3 bitstream
;		by S/W Algorithm
;			File Name: dechuff.s
;			copyright jj,Park      1999.2.7
;
;	using from %9 to %14
;	profile
;		1. 27/5//1999
;			- For monitoring a starting frequency of zero-part,
;			  insert 'index_GzeroPartCh0/index_GzeroPartCh1 register'.
;			  These value are using to optimize looping counter
;		2. 2/11//1999
;			- For having robustness against a bitstream error
;			  insert r2/r3 as protect loop-counter from overlooping 
;		3. Change FillRestWithZero with DecodeOfCount1RET at CheckDismissStuffingBits
;---------------------------------------------------------------------------------
.include	"mp3_def.h"
.include	"mp3_ext.h"

		MP3DechuffSection
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
;				Method using a 1-bit search
;
;	y0					esc value
;	y1					Region2start
;
;			table code x,y
;				or		v,w,x,y,0,0,0,0
;
;		rp0 is modulo (1024-word)
;		esd1	d0		1
;		esd2	s0		1
;
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DecodingHuffman::
	esec2	#sec_z											;ec2<-z-flag	
	eld		sd0		,#((-4&0fh)<<12)|(1<<8)|((-1&0fh)<<4)|(1<<0)	
	eld		sd1		,sd0
	eld		sd3		,#0xF110

	eld		a		,#0
	eld		rpd1.index_LloopCounti,	a	
	eld		a		,#tbl_hcodeEsc
	eld		rpd1.index_ptrHEscTable,a
	
	eld		a		,#1
	eld		p		,a										;using for 1-bit fetch
	eld		sa		,#1										;shift amount=1		
	
	ld		r2		,#0x1									;high loop
	ld		r3		,#0x1f									;low loop	

	eld		a		,rpd1.index_GptrCurrentDecodingData		;output buffer pointer	
	eld		rp0		,a
	eld		a		,rpd0.index_blockType					;a[23:16]:windowSwitchFlag


	ecld	r0		,ah
	cmp		eq		,r0		,#1			
	brf		DecodingHuffmanLong

	ecld	r0		,a
	srb		r0
	cmp		eq		,r0		,#2			
	brf		DecodingHuffmanLong
	
	eld		x1		,#(36/2)								;x1:Region1Start
	eld		y1		,#(576/2)								;y1:Region2Start

	ldb		r0		,@[a13+Index_SamplingFreq]				// caution
	cmp		eq		,r0		,#11
	brf		pass_8khzShort
	
	eld		x1		,#(72/2)								// for mpeg2.5 8Khz
pass_8khzShort	

	jmp		AfterRegionSetting	
DecodingHuffmanLong
	eld		a		,rpd0.index_region0Count				;a[23:16]:region0Count
															;a[15:8]:region1Count
															;a[7:0]:preFlag
	esra8	a												;a>>=8
	eld		y1		,a
	esra8	a												;a>>=8
	eld		c		,rpd1.index_GLongSfBandIndex			;+frequency index	
	eadd	a		,c
	eadd	a		,#1
	eld		rp3		,a
	eld		a		,@rp3+s1								;a:Region1Start
	efz8	a
	esra	a
	eld		x1		,a										;x1:Region1Start
	
	eld		a		,y1										;a<-region1Count
	efz16	a
	eadd	a		,rp3
	eld		rp3		,a
	eld		a		,@rp3
	efz8	a
	esra	a	
	eld		y1		,a										;y1:Region2Start	
AfterRegionSetting
	eld		a		,rpd0.index_tableSelection0				;a[23:16]:tableSelection0
															;a[15:8]:tableSelection1
															;a[7:0]:tableSelection2
	esra8	a												;a>>=8
	esra8	a												;a>>=8	

	jmp		Region0Region1Region2
DecodeOfBigValueLoop1
	ecp		a		,x1										;check whether region0 over
DecodeOfBigValueLoop2	
	enop
	bra		ec0		,CheckRegion2							;ec0:NZ= if a ==x1	
	eld		a		,rpd0.index_tableSelection1				;a[23:16]:tableSelection0
															;a[15:8]:tableSelection1
															;a[7:0]:tableSelection2
	esra8	a												;a<-tableSelection1

	jmp		Region0Region1Region2
CheckRegion2	
	ecp		a		,y1										;check whether region1 over
	enop
	bra		ec0		,PassHuffmanInformation					;ec0:NZ flag
	eld		a		,rpd0.index_tableSelection2				;a[23:16]:tableSelection0
															;a[15:8]:tableSelection1
															;a[7:0]:tableSelection2
Region0Region1Region2
	efz16	a	
	eld		rp3		,a	
	eld		c		,rpd1.index_ptrHEscTable	
	eadd	a		,c
	eld		rp2		,a
	eld		a		,@rp2									;y0<-esc value
	efz16	a
	eld		y0		,a
	erpn	rp3		,#tbl_ptrHcode							;hcode address
	eld		a		,@rp3
	ecld	r4		,a
	cmp		eq		,r4		,#0
	brt		GetHuffmanDecoderError
	
	eld		rp2		,a										;rp2<-Huffman code table
PassHuffmanInformation	
	eld		a		,rpd1.index_LloopCounti
	eld		c		,rpd0.index_bigValues					;check whether conversion end?
	ecld	r0		,a
	ecld	r1		,c
	cmp		eq		,r0		,r1
	brt		BigValueExit

	eld		rp3		,rp2										;recover Huffman code table
	ld		r6		,#19										;r1<-level
	eld		a		,@rp3
BigValueHcodeLoop
	ecld	r0		,a										;for checking high byte
	srb		r0
	cmp		eq		,r0		,#0								;ends?
	brt		BigValueEndHcode
															
	esft	sr		,sa	
	etst	nc		,t
	eadd	b		,sa
	enop
	bra		ec1		,%f9									;ec1 = nc
	eld		b		,#-16									;indicates remained bit
	eld		c		,@rp1+s0								;rp0 += 1
	esla8	c
	eld		sr		,c
%9	esra8t	a												;if t,a >>= 8;
	efz16	a												;a[23:8] <- 0
	
	eadd	a		,rp3
	eld		rp3		,a
	bnzd	r6		,BigValueHcodeLoop						;r1;level check
	eadd	ma0		,p		,a		,@rp3					;USED_BIT += 1
															;a<-next table entry value
	jmp		GetHuffmanDecoderError
BigValueEndHcode											;a[7:4]<-x, a[3:0]<-y
	efz8	a												;for checking whether x&y are zero
	ecld	r0		,a
	cmp		eq		,r0		,#0
	brt		BigValueXYZero

	ld		r6		,#1
	eld		sg		,a	
	enmsk	sg		,#4										;sg[15:4]<-0
	eld		si		,sg										;backup
	esra	a
	esra	a
	esra	a
	esra	a												;a<-x
BigvalueXYLoop	
	enop
	bra		ec2		,BigValueOneZeroOfXY					;check if x==0

	eld		x0		,a										;backup	
	ecp		a		,#15
	enop
	bra		ec0		,BigvalueFetchSign						;check max	

	eld		a		,y0										;a<-esc
	enop
	bra		ec2		,BigvalueSkipEsc						;ec2:checking esc_value
	
	esft	sr		,a
	eadd	b		,a										;b:esc value
	enop
	bra		ec1		,%f10									;ec1 = nc
	eld		c		,@rp1+s0								;rp0 += 1	
	esla8	c
	eld		sr		,c
	esftl	sr		,b										;fetch esc value
	eadd	b		,#-16	
%10	eadd	a		,ma0										;used_bit +=esc
	eld		ma0		,a
	
	eld		a		,sg										;a<-esc_value
BigvalueSkipEsc	
	eadd	a		,x0										;a<-hcode+esc_value	
BigvalueFetchSign
	esft	sr		,sa										;fetch sign bit
	etst	c		,t
	eadd	b		,sa
	enop
	bra		ec1		,%f11									;ec1 = nc
	eld		b		,#-16									;indicates remained bit
	eld		c		,@rp1+s0								;rp1 += 1
	esla8	c
	eld		sr		,c
%11	eadd	ma0		,p										;USED_BIT+=1		
	enegt	a												;negative if C	
BigValueOneZeroOfXY
	eld		@rp0+d0	,a										;save 
	bnzd	r6		,BigvalueXYLoop
	eld		a		,si										;recover

	jmp		BigValueXYLoopCommon
BigValueXYZero
	eld		@rp0+d0	,a										;save x
	eld		@rp0+d0	,a										;save y
BigValueXYLoopCommon
	eld		a		,rpd1.index_LloopCounti
	eadd	a		,#1
	eld		rpd1.index_LloopCounti,	a

	cmp		eq		,r3		,#0
	brfd	DecodeOfBigValueLoop1
	dec		r3
	
	ecp		a		,x1										;check whether region0 over
	cmp		eq		,r2		,#0
	brfd	DecodeOfBigValueLoop2
	dec		r2	
BigValueExit	
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;						Count1  Part Decoding
;	ec2: z-flag
;	ma0		I		USED_BIT(scalefactor+huffman code data)
;	sa		I		1
;	rp2		U		points hcode table A
;
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DecodeOfCount1:
	eld		a		,rpd1.index_GptrCurrentDecodingData
	eadd	a		,#575
	eld		x1		,a
	eld		c		,#Tbl_hcode32							;rp2<-the pointer of table A	
	eld		rp2		,c
	eld		a		,ma0										;b<-USED_BIT
DecodeOfCount1Loop
	esec1	#sec_c											;ec1=c
	eld		c		,rpd0.index_part23Lenght				;Compare USED_bit Vs.part23Lenght
	esub	a		,c
	ecld	r0		,a
	cmp		ge		,r0		,#0
	brt		CheckRewindNbits

	esec1	#sec_nc		
	eld		a		,x1
	ecld	r0		,a
	eld		c		,rp0
	ecld	r1		,c
	cmpu	ge		,r0		,r1
	brf		CheckDismissStuffingBits

	eld		a		,rpd0.index_count1TableSelect			;a[23:16]=Null zero
															;a[15:8]=scalefac_scale
															;a[7:0]=count1table_select
	efz16	a
	ecld	r0		,a
	cmp		eq		,r0		,#0
	brt		Count1TableSelect0
;Only inverter operation
	eld		a		,#4										;a<-hcode length
	esft	sr		,a
	eadd	b		,a
	enop
	bra		ec1		,Count1Table1NonLink					;ec1 = nc
	eld		c		,@rp1+s0								;rp0 += 1	
	esla8	c
	eld		sr		,c
	esftl	sr		,b
	eadd	b		,#-16
Count1Table1NonLink
	eadd	a		,ma0										;USED_BIT += hcode
	eld		ma0		,a	
	eld		a		,sg										;0,0,0,0,v,w,x,y
	esla	a
Count1Table0Table1Common
	eld		rp3		,a
	erpr	rp3												;bit reverse
	eld		a		,rp3									;a<-0,0,0,0,y,x,w,v	
	ecld	r0		,a
	ld		r6		,#3
Count1Table1vwxyLoop	
	eld		a		,#0	
	ld		r2		,r0
	sr		r0
	and		r2		,#0x1
	cmp		eq		,r2		,#1
	brt		Count1Table1PassSign	

	eld		a		,#1										;a<-1
	esft	sr		,sa										;fetch sign bit
	etst	c		,t
	enegt	a												;negative if c
	eadd	ma0		,p										;USED_BIT+=1
	eadd	b		,sa
	enop
	bra		ec1		,Count1Table1PassSign					;ec1 = nc
	eld		b		,#-16									;indicates remained bit
	eld		c		,@rp1+s0									;rp1 += 1
	esla8	c
	eld		sr		,c
Count1Table1PassSign
	bnzd	r6		,Count1Table1vwxyLoop	
	eld		@rp0+d0	,a										;save 
		
	eld		a		,ma0										;b<-USED_BIT
	jmp		DecodeOfCount1Loop	
Count1TableSelect0	
	ld		r6		,#6										;for checking level
	eld		rp3		,rp2										;rp3<-table0 A
	eld		a		,@rp3
Count1Table0Loop
	ecld	r0		,a										;for checking high byte	
	srb		r0
	cmp		eq		,r0		,#0
	brt		Count1Table0Table1Common						;check whether conversion
															;ends?	
	esft	sr		,sa	
	etst	nc		,t
	eadd	b		,sa
	enop
	bra		ec1		,%f15									;ec1 = nc
	eld		b		,#-16									;indicates remained bit
	eld		c		,@rp1+s0									;rp0 += 1		
	esla8	c
	eld		sr		,c	
%15	
	esra8t	a												;if t,a >>= 8;
	efz16	a												;a[23:8] <- 0
	
	eadd	a		,rp3
	eld		rp3		,a
	bnzd	r6		,Count1Table0Loop						;r1;level
	eadd	ma0		,p		,a		,@rp3					;USED_BIT += 1	

GetHuffmanDecoderError														
	ld		r0		,#1
	ldb		@[a13+Index_FrameErrorFlag]		,r0				;indicates "FALSE"	
	ldb		@[a10+Index_DecodeErrFlag]		,r0
	esec2	#sec_t											;ec2<-t flag	
	er		me1

	ret
CheckDismissStuffingBits
	eld		x1		,#16
	eld		a		,rpd0.index_part23Lenght
	esub	a		,ma0
	eld		sg		,a
	esra	a
	esra	a
	esra	a
	esra	a
	ecld	r6		,a
//s
	ld		r6		,r6
//
	enmsk	sg		,#4
	eld		a		,sg
DismissStuffingBitsLoop	
	esft	sr		,a
	eadd	b		,a
	enop
	bra		ec1		,DismissStuffingNonLink					;ec1=nc=1,if -b<=sa
	eld		c		,@rp1+s0								;rp1 += 1
	esla8	c
	eld		sr		,c
	esftl	sr		,b
	eadd	b		,#-16
DismissStuffingNonLink	
	bnzd	r6		,DismissStuffingBitsLoop
	eld		a		,x1

	jmp		FillRestWithZero
CheckRewindNbits
;--------			CheckRewindNbits		-------------
	enop
	bra		ec2		,FillRestWithZero						;ec1=nc=1,if -b<=sa

//////////////	
// 2003.07.10 for only GOGO

	eld		y1		,a
	eld		a		,rpd0.index_part23Lenght					;Compare USED_bit Vs.part23Lenght
	ecp		a		,#0
	enop
	bra		ec2		,GOGO_Enc
		
	jmp		GOGO_EncEnd
GOGO_Enc	
	eld		c		,rpd1.index_GcopyRp1					;recover rp1
	eld		rp1		,c
	eld		b		,rpd1.index_GcopySr	
	eld		sr		,b									;recover SI register
	eld		b		,rpd1.index_GcopyB					;recover B register

	eld		a		,y1
	
	jmp		FillRestWithZero
GOGO_EncEnd
	eld		a		,y1
//////////////	
	
	erpd	rp0+d1											;rp0-=4
	erps	rp1+s1											;adjust<-rp1--

	esub	b		,a
	esub	b		,#-16
	enop
	bra		ec1		,%f12									;c=0,if rewind bits		
															;are at current pointer
	eadd	b		,#16
	erps	rp1+s1											;back pointer
%12
	eld		c		,@rp1+s0
	esla8	c
	eld		sr		,c

	ecld	r0		,b
	and		r0		,#0xf
	eld		c		,#0
	ecld	c		,r0	
	eld		sa		,c
	esft	sr		,sa
	eadd	b		,#-16
FillRestWithZero
	esec1	#sec_n	
	eld		a		,rp0
	eld		c		,rpd1.index_GptrCurrentDecodingData
	ecp		a		,c
	enop
	bra		ec1		,UnderPtr
		
	eld		c		,rpd1.index_GptrCurrentDecodingData		;a<-non-zero frequency size	
	esub	a		,c
	
	jmp		UnderPtrEnd
UnderPtr
	eld		a		,#0	
UnderPtrEnd	

	esec1	#sec_nc	
	eld		rpd1.index_GzeroPartCh1,a						;save Ch1's non-zero frequency size
	ldb		r0		,@[a13+Index_ChannelLoop]
	cmp		eq		,r0		,#0
	brt		%f13
	eld		rpd1.index_GzeroPartCh0,a						;save Ch0's non-zero frequency size 
%13	eadd	a		,#-576
	enop
	bra		ec1		,%f14										;ec1=nc, conversion end
	jmp		DecodeOfCount1RET
%14	eld		@rp0+d0	,ma0l										;fill with MAL-zero
	eadd	a		,#1
	enop
	bra		ec1		,%b14									;ec1:carry
DecodeOfCount1RET
	esec2	#sec_t											;ec2<-t flag	
	er		me1
	
	ret
	
	end
	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产综合色视频| 欧美视频一区二区在线观看| 视频精品一区二区| 自拍偷拍亚洲综合| 亚洲欧洲国产日韩| 亚洲黄色免费网站| 午夜激情综合网| 久久激五月天综合精品| 极品美女销魂一区二区三区免费 | 91老师片黄在线观看| 成人aa视频在线观看| 色婷婷综合久久久久中文一区二区| 成人精品鲁一区一区二区| 成人精品鲁一区一区二区| 波多野结衣中文字幕一区二区三区| 91亚洲国产成人精品一区二区三 | 成人综合婷婷国产精品久久| 国产**成人网毛片九色| 99久久久无码国产精品| 91蜜桃网址入口| 欧美一卡二卡在线观看| 国产午夜亚洲精品午夜鲁丝片| 国产精品福利一区二区三区| 亚洲va国产天堂va久久en| 精品一区二区在线播放| 成人在线视频一区二区| 欧美日韩亚洲另类| 久久久久久毛片| 亚洲三级视频在线观看| 奇米777欧美一区二区| 懂色av一区二区夜夜嗨| 欧美日韩精品欧美日韩精品| 久久日韩粉嫩一区二区三区| 亚洲人精品午夜| 久久国产综合精品| 色综合久久久久久久久久久| 欧美一区二区三区免费观看视频| 国产精品女主播av| 日韩激情视频网站| 色综合中文字幕国产| 在线播放一区二区三区| 国产精品三级av| 免费在线看一区| 91原创在线视频| 久久久久久久免费视频了| 一区二区三区日韩欧美| 国产成人免费视频网站| 日韩一区二区精品葵司在线| 樱花草国产18久久久久| 国产成人av一区二区| 日韩亚洲国产中文字幕欧美| 亚洲视频在线一区二区| 国产成人自拍在线| 日韩免费视频一区二区| 亚洲福利一区二区三区| 色哟哟国产精品| 日本一区二区三级电影在线观看 | 亚洲欧美一区二区在线观看| 久久99精品久久只有精品| 欧美午夜一区二区三区免费大片| 久久精品夜色噜噜亚洲a∨ | 国产亚洲福利社区一区| 热久久久久久久| 欧美日韩精品欧美日韩精品 | 自拍偷拍国产亚洲| 成人免费毛片a| 国产欧美一区视频| 国产乱码精品一区二区三 | 国产成人亚洲综合a∨婷婷| 91精品久久久久久蜜臀| 天使萌一区二区三区免费观看| 91啪在线观看| 依依成人精品视频| 91日韩在线专区| 一区二区三区四区乱视频| 在线观看日韩精品| 老司机精品视频一区二区三区| 色呦呦国产精品| 亚洲gay无套男同| 欧美亚洲日本一区| 午夜欧美在线一二页| 在线不卡免费av| 秋霞午夜av一区二区三区| 欧美一区二区在线播放| 精品无人区卡一卡二卡三乱码免费卡| 日韩一区二区三区在线观看| 精品一区免费av| 欧美经典一区二区| 97se亚洲国产综合自在线不卡| 亚洲日穴在线视频| 欧美性猛交一区二区三区精品| 亚洲精品一二三| 欧美视频一区在线观看| 日本欧美一区二区三区| 久久综合久久综合九色| 成人性色生活片| 亚洲视频小说图片| 日韩一区二区影院| 国产999精品久久久久久| 国产精品免费观看视频| 欧美日韩高清一区二区三区| 久久精品国产**网站演员| 欧美激情一二三区| 欧美亚洲愉拍一区二区| 精品综合久久久久久8888| 久久99精品久久久久久久久久久久| 精品伦理精品一区| 成人美女视频在线看| 亚洲成a人v欧美综合天堂下载 | 亚洲精选视频免费看| 欧美日韩高清在线| 成人va在线观看| 日韩综合在线视频| 日本一区二区三区在线观看| 欧美伊人久久大香线蕉综合69| 久久爱另类一区二区小说| ㊣最新国产の精品bt伙计久久| 91精品国产综合久久小美女| 91天堂素人约啪| 久久se这里有精品| 亚洲成a人片综合在线| 亚洲国产精品国自产拍av| 91麻豆精品国产91| 97精品久久久午夜一区二区三区| 日本v片在线高清不卡在线观看| 日韩伦理免费电影| 欧美国产禁国产网站cc| 日韩视频在线永久播放| 欧美日韩情趣电影| 91理论电影在线观看| 高清国产一区二区三区| 久久国产精品99精品国产 | 激情图片小说一区| 亚洲国产综合91精品麻豆| 国产精品毛片久久久久久| 亚洲精品在线电影| 日韩欧美综合一区| 欧美男人的天堂一二区| 91福利在线观看| 91污在线观看| 99久久伊人精品| eeuss鲁片一区二区三区在线看| 久热成人在线视频| 偷窥国产亚洲免费视频| 亚洲综合另类小说| 亚洲综合丁香婷婷六月香| 最新高清无码专区| 亚洲欧洲一区二区三区| 国产精品超碰97尤物18| 国产精品免费久久| 亚洲欧美一区二区三区孕妇| 国产精品久久777777| 欧美国产精品中文字幕| 国产精品乱码人人做人人爱| 国产精品无码永久免费888| 久久久亚洲精华液精华液精华液| 精品999久久久| 国产午夜亚洲精品午夜鲁丝片| 国产日韩精品视频一区| 中国av一区二区三区| 亚洲国产精品二十页| 亚洲成人av电影| 全国精品久久少妇| 国产在线乱码一区二区三区| 国产精品夜夜嗨| 成人高清视频免费观看| 色噜噜夜夜夜综合网| 欧美日韩在线观看一区二区 | 亚洲精品久久嫩草网站秘色| 一区二区视频在线看| 亚洲二区在线视频| 蜜臀av国产精品久久久久| 精品在线一区二区| caoporn国产精品| 欧亚一区二区三区| 日韩欧美国产一区二区在线播放| 精品国内二区三区| 国产精品传媒入口麻豆| 亚洲va国产天堂va久久en| 九一九一国产精品| 91在线高清观看| 精品国产免费人成电影在线观看四季| 久久久美女毛片| 亚洲高清不卡在线| 国产999精品久久| 欧美日韩aaa| 国产精品久久久久永久免费观看| 亚洲小说春色综合另类电影| 久久国产麻豆精品| 一本到三区不卡视频| 欧美精品一区二区精品网| 国产亚洲欧美日韩俺去了| 亚洲综合偷拍欧美一区色| 国产在线播放一区| 欧美日韩国产色站一区二区三区| 精品国产百合女同互慰| 亚洲午夜久久久| 成人免费观看男女羞羞视频| 日韩欧美国产精品一区| 一区二区三区免费网站|