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

📄 dspjpeg.asm

📁 利用C6000DSP实现对图像的JPEG压缩代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.line	7
           B       .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                    *
;******************************************************************************
_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
           B       .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,B0,B1,B4,B5,B6,B7                           *
;*   Regs Used         : A0,A1,A3,A4,B0,B1,B3,B4,B5,B6,B7,DP                  *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_WriteBitsStream:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_value,4, 13, 17, 16
	.sym	_codeLen,20, 12, 17, 8
	.sym	_value,4, 13, 4, 16
	.sym	_codeLen,20, 12, 4, 8
	.line	5
           SUB     .D2     B4,1,B4           ; |393| 
           EXT     .S2     B4,24,24,B6       ; |393| 
           CMPLT   .L2     B6,0,B0           ; |393| 
   [ B0]   B       .S1     L6                ; |393| 
   [!B0]   MVK     .S2     (_mask-$bss),B4
   [!B0]   ADD     .D2     DP,B4,B7
   [!B0]   ADDAH   .D2     B7,B6,B4

   [!B0]   LDBU    .D2T2   *+DP(_bytenew),B4
|| [!B0]   ADD     .S1X    2,B4,A0

   [!B0]   LDB     .D2T2   *+DP(_bytepos),B5
           ; BRANCH OCCURS                   ; |393| 
;** --------------------------------------------------------------------------*
	.line	7
           ADD     .D2     1,B6,B6           ; |395| 
           EXT     .S2     B6,24,24,B0       ; |395| 
           LDHU    .D1T1   *--A0,A3          ; |395| 
           NOP             4
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: bad loop structure
;*----------------------------------------------------------------------------*
L4:    
           AND     .S1     A4,A3,A1          ; |395| 
	.line	9
   [ A1]   LDHU    .D2T2   *+B7[B5],B6       ; |397| 
           NOP             4
   [ A1]   OR      .S2     B6,B4,B6          ; |397| 
   [ A1]   EXTU    .S2     B6,24,24,B4       ; |397| 
	.line	11
           SUB     .D2     B5,1,B5           ; |399| 
           EXT     .S2     B5,24,24,B5       ; |399| 
           CMPLT   .L2     B5,0,B1           ; |399| 
   [!B1]   B       .S1     L5                ; |399| 
           NOP             5
           ; BRANCH OCCURS                   ; |399| 
;** --------------------------------------------------------------------------*
	.line	14
           MVK     .S1     255,A3            ; |402| 
           CMPEQ   .L1X    B4,A3,A1          ; |402| 
   [!A1]   LDW     .D2T2   *+DP(_CodeLen),B5 ; |487| 
   [!A1]   LDW     .D2T2   *+DP(_pDestJpeg),B6 ; |487| 
           NOP             4
   [!A1]   STB     .D2T2   B4,*+B5[B6]       ; |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	21
   [ A1]   LDW     .D2T2   *+DP(_CodeLen),B6 ; |487| 
   [ A1]   LDW     .D2T2   *+DP(_pDestJpeg),B4 ; |487| 
   [ A1]   MVK     .S2     0xff,B5           ; |487| 
           NOP             3
   [ A1]   STB     .D2T2   B5,*+B6[B4]
   [ 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),B5 ; |487| 
   [ A1]   ZERO    .D2     B6                ; |487| 
           NOP             3
   [ A1]   STB     .D2T2   B6,*+B5[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

           ZERO    .D2     B4                ; |411| 
||         MVK     .S2     0x7,B5            ; |411| 

;** --------------------------------------------------------------------------*
L5:    
	.line	25
           SUB     .D2     B0,1,B0           ; |413| 
   [ B0]   B       .S1     L4                ; |413| 

   [ B0]   LDHU    .D1T1   *--A0,A3          ; |395| 
|| [!B0]   STB     .D2T2   B5,*+DP(_bytepos)

   [!B0]   STB     .D2T2   B4,*+DP(_bytenew)
           NOP             3
           ; BRANCH OCCURS                   ; |413| 
;** --------------------------------------------------------------------------*
L6:    
	.line	26
           B       .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,B0,B1,B3,B4,B5,B6,B7,SP                  *
;*   Regs Used         : A0,A1,A3,A4,B0,B1,B3,B4,B5,B6,B7,SP                  *
;*   Local Frame Size  : 0 Args + 4 Auto + 4 Save = 8 byte                    *
;******************************************************************************
_WriteBitsYM:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_sym,4, 24, 17, 32, _tagSYM2
	.sym	_sym,4, 24, 4, 32, _tagSYM2
	.sym	_sym,4, 8, 1, 32, _tagSYM2
           STW     .D2T2   B3,*SP--(8)       ; |385| 
           LDH     .D1T1   *A4,A3            ; |385| 
           LDH     .D1T1   *+A4(2),A0        ; |385| 
           ADD     .D2     4,SP,B4           ; |385| 
           NOP             2
           STH     .D2T1   A3,*B4            ; |385| 
           STH     .D2T1   A0,*+B4(2)        ; |385| 
	.line	3

           B       .S1     _WriteBitsStream  ; |386| 
||         LDHU    .D2T1   *+SP(4),A4

           LDBU    .D2T2   *+SP(6),B4        ; |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
           B       .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,B0,B1,B3,B4,B5,B6,B7,SP                  *
;*   Regs Used         : A0,A1,A3,A4,B0,B1,B3,B4,B5,B6,B7,SP                  *
;*   Local Frame Size  : 0 Args + 8 Auto + 4 Save = 12 byte                   *
;******************************************************************************
_WriteBits:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_huffCode,4, 24, 17, 32, _tagHUFFCODE
	.sym	_huffCode,4, 24, 4, 32, _tagHUFFCODE
	.sym	_huffCode,4, 8, 1, 48, _tagHUFFCODE
           STW     .D2T2   B3,*SP--(16)      ; |379| 
           LDH     .D1T1   *+A4(4),A3        ; |379| 
           LDH     .D1T1   *+A4(2),A0        ; |379| 
           LDH     .D1T1   *A4,A4            ; |379| 
           ADD     .D2     4,SP,B4           ; |379| 
           NOP             2
           STH     .D2T1   A0,*+B4(2)        ; |379| 
           STH     .D2T1   A4,*B4            ; |379| 
           STH     .D2T1   A3,*+B4(4)        ; |379| 
	.line	3

           B       .S1     _WriteBitsStream  ; |380| 
||         LDHU    .D2T1   *+SP(4),A4        ; |380| 

           LDBU    .D2T2   *+SP(6),B4        ; |380| 
           MVKL    .S2     RL2,B3            ; |380| 
           MVKH    .S2     RL2,B3            ; |380| 
           NOP             2
RL2:       ; CALL OCCURS                     ; |380| 
	.line	4
           LDW     .D2T2   *++SP(16),B3      ; |381| 
           NOP             4
           B       .S2     B3                ; |381| 
           NOP             5
           ; BRANCH OCCURS                   ; |381| 
	.endfunc	381,000080000h,16


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

;******************************************************************************
;* FUNCTION NAME: _Standard                                                   *
;*                                                                            *
;*   Regs Modified     : A0,A3,A5,B0,B1,B2,B4,B5,B6,B7,B8,B9                  *
;*   Regs Used         : A0,A3,A4,A5,B0,B1,B2,B3,B4,B5,B6,B7,B8,B9            *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_Standard:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_lpBuf,4, 19, 17, 32
	.sym	_quantTab,20, 30, 17, 32
	.sym	_F7,0, 4, 4, 32
	.sym	_F6,21, 4, 4, 32
	.sym	_F5,16, 4, 4, 32
	.sym	_F4,25, 4, 4, 32
	.sym	_F3,24, 4, 4, 32
	.sym	_F2,22, 4, 4, 32
	.sym	_F1,23, 4, 4, 32
	.sym	_lpBuf,4, 19, 4, 32
	.sym	_quantTab,20, 30, 4, 32
	.line	10

           LDH     .D1T2   *+A4(2),B5        ; |506| 
||         LDW     .D2T1   *+B4(4),A0        ; |506| 

           NOP             4

           MPYLH   .M1X    A0,B5,A3          ; |506| 
||         MPYLH   .M2X    B5,A0,B6          ; |506| 

           MPYU    .M1X    A0,B5,A0          ; |506| 
           ADD     .S2X    A3,B6,B7          ; |506| 
           SHL     .S2     B7,16,B7          ; |506| 
           ADD     .S2X    A0,B7,B7          ; |506| 
	.line	11
           LDW     .D2T2   *+B4(8),B6        ; |507| 
           LDH     .D1T2   *+A4(4),B5        ; |507| 
           NOP             4
           MPYLH   .M2     B6,B5,B9          ; |507| 
           MPYLH   .M2     B5,B6,B8          ; |507| 
           MPYU    .M2     B6,B5,B5          ; |507| 
           ADD     .D2     B9,B8,B6          ; |507| 
           SHL     .S2     B6,16,B6          ; |507| 
           ADD     .D2     B5,B6,B6          ; |507| 
	.line	12
           LDH     .D1T2   *+A4(6),B8        ; |508| 
           LDW     .D2T2   *+B4(12),B5       ; |508| 
           NOP             4
           MPYLH   .M2     B8,B5,B0          ; |508| 
           MPYLH   .M2     B5,B8,B9          ; |508| 
           MPYU    .M2     B5,B8,B5          ; |508| 
           ADD     .D2     B9,B0,B8          ; |508| 
           SHL     .S2     B8,16,B8          ; |508| 
           ADD     .D2     B5,B8,B8          ; |508| 
	.line	13

           LDW     .D2T2   *+B4(16),B5       ; |509| 
||         LDH     .D1T1   *+A4(8),A0        ; |509| 

           NOP             4

           MPYLH   .M2X    A0,B5,B9          ; |509| 
||         MPYLH   .M1X    B5,A0,A3          ; |509| 

           MPYU    .M1X    B5,A0,A0          ; |509| 
           ADD     .S2X    A3,B9,B9          ; |509| 

⌨️ 快捷键说明

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