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

📄 dspjpeg.asm

📁 DSP GEPE 压缩算法
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_WriteEOI:
;** --------------------------------------------------------------------------*
	.line	2
	.line	3
           LDW     .D2T2   *+DP(_CodeLen),B5 ; |492| 
           LDW     .D2T2   *+DP(_pDestJpeg),B4 ; |492| 
           MVK     .S1     255,A0            ; |492| 
           NOP             3
           STB     .D2T1   A0,*+B5[B4]       ; |492| 
	.line	4
           LDW     .D2T2   *+DP(_CodeLen),B5 ; |493| 
           NOP             4
           ADD     .D2     1,B5,B5           ; |493| 
           STW     .D2T2   B5,*+DP(_CodeLen) ; |493| 
	.line	5
           LDW     .D2T2   *+DP(_CodeLen),B6 ; |494| 
           MVK     .S2     217,B5            ; |494| 
           NOP             3
           STB     .D2T2   B5,*+B6[B4]       ; |494| 
	.line	6
           LDW     .D2T2   *+DP(_CodeLen),B4 ; |495| 
           NOP             4
           ADD     .D2     1,B4,B4           ; |495| 
           STW     .D2T2   B4,*+DP(_CodeLen) ; |495| 
	.line	7
           RET     .S2     B3                ; |496| 
           NOP             5
           ; BRANCH OCCURS                   ; |496| 
	.endfunc	496,000000000h,0



	.sect	".text"
	.global	_WriteByte
	.sym	_WriteByte,_WriteByte, 32, 2, 0
	.func	485

;******************************************************************************
;* FUNCTION NAME: _WriteByte                                                  *
;*                                                                            *
;*   Regs Modified     : B4,B5                                                *
;*   Regs Used         : A4,B3,B4,B5,DP                                       *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_WriteByte:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_val,4, 12, 17, 8
	.sym	_val,4, 12, 4, 8
	.line	3
           LDW     .D2T2   *+DP(_CodeLen),B4 ; |487| 
           LDW     .D2T2   *+DP(_pDestJpeg),B5 ; |487| 
           NOP             4
           STB     .D2T1   A4,*+B4[B5]       ; |487| 
	.line	4
           LDW     .D2T2   *+DP(_CodeLen),B4 ; |488| 
           NOP             4
           ADD     .D2     1,B4,B4           ; |488| 
           STW     .D2T2   B4,*+DP(_CodeLen) ; |488| 
	.line	5
           RET     .S2     B3                ; |489| 
           NOP             5
           ; BRANCH OCCURS                   ; |489| 
	.endfunc	489,000000000h,0



	.sect	".text"
	.global	_WriteBitsStream
	.sym	_WriteBitsStream,_WriteBitsStream, 32, 2, 0
	.func	389

;******************************************************************************
;* FUNCTION NAME: _WriteBitsStream                                            *
;*                                                                            *
;*   Regs Modified     : A0,A1,A3,A4,A5,B0,B1,B4,B5,B6,B7,B8                  *
;*   Regs Used         : A0,A1,A3,A4,A5,B0,B1,B3,B4,B5,B6,B7,B8,DP            *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_WriteBitsStream:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_value,4, 13, 17, 16
	.sym	_codeLen,20, 12, 17, 8
	.sym	_value,24, 13, 4, 16
	.sym	_codeLen,20, 12, 4, 8
           MV      .S2X    A4,B8             ; |390| 
	.line	5
           SUB     .S1X    B4,1,A0           ; |393| 
           EXT     .S1     A0,24,24,A5       ; |393| 
           CMPLT   .L1     A5,0,A1           ; |393| 
   [ A1]   B       .S1     L6                ; |393| 
   [!A1]   MVK     .S1     (_mask-$bss),A0
   [!A1]   ADD     .S1X    DP,A0,A4
   [!A1]   ADDAH   .D1     A4,A5,A0

   [!A1]   LDBU    .D2T1   *+DP(_bytenew),A0
|| [!A1]   ADD     .S2X    2,A0,B6

   [!A1]   LDB     .D2T1   *+DP(_bytepos),A3
           ; BRANCH OCCURS                   ; |393| 
;** --------------------------------------------------------------------------*
	.line	7
           ADD     .S2X    1,A5,B4           ; |395| 
           EXT     .S2     B4,24,24,B1       ; |395| 
           LDHU    .D2T2   *--B6,B4
           NOP             4
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: Loop contains control code
;*----------------------------------------------------------------------------*
L4:    
           AND     .S2     B8,B4,B0
	.line	9
   [ B0]   LDHU    .D1T1   *+A4[A3],A5       ; |397| 
           NOP             4
   [ B0]   OR      .S1     A5,A0,A5          ; |397| 
   [ B0]   EXTU    .S1     A5,24,24,A0       ; |397| 
	.line	11
           SUB     .D1     A3,1,A3           ; |399| 
           EXT     .S1     A3,24,24,A3       ; |399| 
           CMPLT   .L1     A3,0,A1           ; |399| 
   [!A1]   B       .S1     L5                ; |399| 
           NOP             5
           ; BRANCH OCCURS                   ; |399| 
;** --------------------------------------------------------------------------*
	.line	14
           MVK     .S1     255,A3            ; |402| 
           CMPEQ   .L1     A0,A3,A1          ; |402| 
   [!A1]   LDW     .D2T1   *+DP(_pDestJpeg),A5 ; |487| 
   [!A1]   LDW     .D2T1   *+DP(_CodeLen),A3 ; |487| 
           NOP             4
   [!A1]   STB     .D1T1   A0,*+A3[A5]       ; |487| 
   [!A1]   LDW     .D2T2   *+DP(_CodeLen),B4 ; |488| 
           NOP             4
   [!A1]   ADD     .D2     1,B4,B4           ; |488| 
   [!A1]   STW     .D2T2   B4,*+DP(_CodeLen) ; |488| 
   [ A1]   LDW     .D2T2   *+DP(_CodeLen),B5 ; |487| 
   [ A1]   LDW     .D2T2   *+DP(_pDestJpeg),B4 ; |487| 
   [ A1]   MVK     .S2     0xff,B7           ; |487| 
           NOP             3
   [ A1]   STB     .D2T2   B7,*+B5[B4]       ; |487| 
   [ A1]   LDW     .D2T2   *+DP(_CodeLen),B5 ; |488| 
           NOP             4
   [ A1]   ADD     .D2     1,B5,B5           ; |488| 
   [ A1]   STW     .D2T2   B5,*+DP(_CodeLen) ; |488| 
   [ A1]   LDW     .D2T2   *+DP(_CodeLen),B7 ; |487| 
   [ A1]   ZERO    .D2     B5                ; |487| 
           NOP             3
   [ A1]   STB     .D2T2   B5,*+B7[B4]       ; |487| 
   [ A1]   LDW     .D2T2   *+DP(_CodeLen),B4 ; |488| 
           NOP             4
   [ A1]   ADD     .D2     1,B4,B4           ; |488| 
   [ A1]   STW     .D2T2   B4,*+DP(_CodeLen) ; |488| 
	.line	23

           MVK     .S1     0x7,A3            ; |411| 
||         ZERO    .D1     A0                ; |411| 

;** --------------------------------------------------------------------------*
L5:    
	.line	25
           SUB     .D2     B1,1,B1           ; |413| 
   [ B1]   B       .S1     L4                ; |413| 
   [ B1]   LDHU    .D2T2   *--B6,B4
   [!B1]   STB     .D2T1   A3,*+DP(_bytepos)
   [!B1]   STB     .D2T1   A0,*+DP(_bytenew)
           NOP             2
           ; BRANCH OCCURS                   ; |413| 
;** --------------------------------------------------------------------------*
L6:    
	.line	26
           RET     .S2     B3                ; |414| 
           NOP             5
           ; BRANCH OCCURS                   ; |414| 
	.endfunc	414,000000000h,0



	.sect	".text"
	.global	_WriteBitsYM
	.sym	_WriteBitsYM,_WriteBitsYM, 32, 2, 0
	.func	384

;******************************************************************************
;* FUNCTION NAME: _WriteBitsYM                                                *
;*                                                                            *
;*   Regs Modified     : A0,A1,A3,A4,A5,B0,B1,B3,B4,B5,B6,B7,B8,SP            *
;*   Regs Used         : A0,A1,A3,A4,A5,B0,B1,B3,B4,B5,B6,B7,B8,SP            *
;*   Local Frame Size  : 0 Args + 0 Auto + 4 Save = 4 byte                    *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_WriteBitsYM:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_sym,4, 24, 17, 32, _tagSYM2
	.sym	_sym,4, 24, 4, 32, _tagSYM2
           STW     .D2T2   B3,*SP--(8)       ; |385| 
	.line	3

           CALL    .S1     _WriteBitsStream  ; |386| 
||         LDBU    .D1T2   *+A4(2),B4        ; |386| 

           LDHU    .D1T1   *A4,A4            ; |386| 
           MVKL    .S2     RL0,B3            ; |386| 
           MVKH    .S2     RL0,B3            ; |386| 
           NOP             2
RL0:       ; CALL OCCURS                     ; |386| 
	.line	4
           LDW     .D2T2   *++SP(8),B3       ; |387| 
           NOP             4
           RET     .S2     B3                ; |387| 
           NOP             5
           ; BRANCH OCCURS                   ; |387| 
	.endfunc	387,000080000h,8



	.sect	".text"
	.global	_WriteBits
	.sym	_WriteBits,_WriteBits, 32, 2, 0
	.func	378

;******************************************************************************
;* FUNCTION NAME: _WriteBits                                                  *
;*                                                                            *
;*   Regs Modified     : A0,A1,A3,A4,A5,B0,B1,B3,B4,B5,B6,B7,B8,SP            *
;*   Regs Used         : A0,A1,A3,A4,A5,B0,B1,B3,B4,B5,B6,B7,B8,SP            *
;*   Local Frame Size  : 0 Args + 0 Auto + 4 Save = 4 byte                    *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_WriteBits:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_huffCode,4, 24, 17, 32, _tagHUFFCODE
	.sym	_huffCode,4, 24, 4, 32, _tagHUFFCODE
           STW     .D2T2   B3,*SP--(8)       ; |379| 
	.line	3

           CALL    .S1     _WriteBitsStream  ; |380| 
||         LDBU    .D1T2   *+A4(2),B4        ; |380| 

           LDHU    .D1T1   *A4,A4            ; |380| 
           MVKL    .S2     RL1,B3            ; |380| 
           MVKH    .S2     RL1,B3            ; |380| 
           NOP             2
RL1:       ; CALL OCCURS                     ; |380| 
	.line	4
           LDW     .D2T2   *++SP(8),B3       ; |381| 
           NOP             4
           RET     .S2     B3                ; |381| 
           NOP             5
           ; BRANCH OCCURS                   ; |381| 
	.endfunc	381,000080000h,8



	.sect	".text"
	.global	_Standard
	.sym	_Standard,_Standard, 32, 2, 0
	.func	497

;******************************************************************************
;* FUNCTION NAME: _Standard                                                   *
;*                                                                            *
;*   Regs Modified     : A0,A3,A5,B4,B5,B6,B7,B8                              *
;*   Regs Used         : A0,A3,A4,A5,B3,B4,B5,B6,B7,B8                        *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************

;******************************************************************************
;*                                                                            *
;* Using -g (debug) with optimization (-o3) may disable key optimizations!    *
;*                                                                            *
;******************************************************************************
_Standard:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_lpBuf,4, 19, 17, 32
	.sym	_quantTab,20, 30, 17, 32
	.sym	_lpBuf,4, 19, 4, 32
	.sym	_quantTab,20, 30, 4, 32
	.line	18

           LDW     .D2T1   *B4,A0            ; |514| 
||         LDH     .D1T2   *A4,B5            ; |514| 

⌨️ 快捷键说明

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