?? reorder.s
字號(hào):
;-----------------------------------------------------------
; The following program will decoding MP3 bitstream
; by S/W Algorithm
; File Name: reorder.s
; copyright jj,Park 1999.2.7
;
;-----------------------------------------------------------
.include "mp3_def.h"
.include "mp3_ext.h"
MP3ReorderSection
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; idl0 In/Out the pointer of granule/channel's
; sideinformation
;
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DecodingReordering::
eld b ,rpd0.index_blockType ;b[23:16]<-windowSwitchingFlag
;b[15:8]<-blockType
;b[7:0]<-mixedBlockFlag
esra b ;c<-mixedBlockFlag
etst nc ,t
efs8 b
ecp b ,#((1<<16)|(const_shortBlock<<8))>>1 ;short&switching
enop
bra ec0 ,ReorderingRet ;ec0:nz
eld sd0 ,#((-1&0fh)<<12)|(1<<8)|((-1&0fh)<<4)|(1<<0)
eld sd2 ,#((-1&0fh)<<12)|(3<<8)|((-1&0fh)<<4)|(1<<0)
eld sd3 ,#((-1&0fh)<<12)|(1<<8)|((-1&0fh)<<4)|(2<<0)
esd1 s0 ,#1
eld c ,rpd1.index_GptrCurrentDecodingData ;input buffer pointer
eld rp0 ,c
eld c ,rpd1.index_GShortSfBandIndex ;short sfb index low
eld rp3 ,c
///caution
ld r3 ,#12 ;0,1,2,3,4,5,6,7,8,9,10,11,12
enop
bra ec2 ,ShortSwitchingReordering ;check if pure short
erpn rp0 ,#36 ;pass long block(36-freq)
erpn rp3 ,#3 ;3's band
ld r3 ,#9 ;band:3,4,5,6,7,8,9,10,11,12
ShortSwitchingReordering
erpd rp3+d0
eld b ,@rp3+s1 ;b<-band->s[0] or s[3],rp3-=1
ShortSwitchingSfbLoop
eld c ,@rp3+s0
esub b ,c ;b<-s[i+1]-band->s[i], ,rp3+=2
eadd b ,#-1
eld rp1 ,#Area_reorderTempBuffer ;temporary buffer
eld c ,rp0
eld rpd1.index_LRPxBackupBuffer ,c
ld r7 ,#2 ;window size
ShortSwitchingWindowLoop
ecld r6 ,b ;r1 <- freq.line
eld rp2 ,rp1 ;rp2<-3*band->s[i]+win
ShortSwitchingFreqLoop
eld a ,@rp0+s0 ;a<-[sfb][win][freq]
bnzd r6 ,ShortSwitchingFreqLoop
eld @rp2+d0 ,a ;rp2 += 3
bnzd r7 ,ShortSwitchingWindowLoop ;window loop
erps rp1+s0 ;rp1 += 1
eld c ,rpd1.index_LRPxBackupBuffer
eld rp0 ,c
eld rp2 ,#Area_reorderTempBuffer ;temporary buffer
ld r7 ,#2
ecld r6 ,b
ShortSwitchingMoveLoop
eld a ,@rp2+s0
bnzd r6 ,ShortSwitchingMoveLoop
eld @rp0+d0 ,a
bnzd r7 ,ShortSwitchingMoveLoop
ecld r6 ,b
eld b ,@rp3+s1 ;dummy due to delay
cmp eq ,r3 ,#0
brfd ShortSwitchingSfbLoop
dec r3
ReorderingRet
ret
end
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -