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

📄 dspjpeg.asm

📁 利用C6000DSP实现对图像的JPEG压缩代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           SHL     .S2     B9,16,B9          ; |509| 
           ADD     .S2X    A0,B9,B9          ; |509| 
	.line	14

           LDW     .D2T2   *+B4(20),B5       ; |510| 
||         LDH     .D1T1   *+A4(10),A0       ; |510| 

           NOP             4

           MPYLH   .M1X    B5,A0,A3          ; |510| 
||         MPYLH   .M2X    A0,B5,B0          ; |510| 

           MPYU    .M1X    B5,A0,A0          ; |510| 
           ADD     .S2X    A3,B0,B0          ; |510| 
           SHL     .S2     B0,16,B0          ; |510| 
           ADD     .S2X    A0,B0,B0          ; |510| 
	.line	15

           LDH     .D1T1   *+A4(12),A0       ; |511| 
||         LDW     .D2T2   *+B4(24),B5       ; |511| 

           NOP             4
           MPYLH   .M2X    B5,A0,B2          ; |511| 
           MPYLH   .M2X    A0,B5,B1          ; |511| 
           NOP             1

           ADD     .D2     B2,B1,B5          ; |511| 
||         MPYU    .M2X    B5,A0,B1          ; |511| 

           SHL     .S2     B5,16,B5          ; |511| 
           ADD     .D2     B1,B5,B5          ; |511| 
	.line	16

           LDH     .D1T1   *+A4(14),A0       ; |512| 
||         LDW     .D2T2   *+B4(28),B1       ; |512| 

           NOP             4

           MPYLH   .M2X    B1,A0,B2          ; |512| 
||         MPYLH   .M1X    A0,B1,A5          ; |512| 

           MPYU    .M1X    B1,A0,A3          ; |512| 
           ADD     .S1X    B2,A5,A0          ; |512| 
           SHL     .S1     A0,16,A0          ; |512| 
           ADD     .D1     A3,A0,A0          ; |512| 
	.line	18

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

           NOP             4

           MPYLH   .M2X    B4,A3,B1          ; |514| 
||         MPYLH   .M1X    A3,B4,A5          ; |514| 

           MPYU    .M1X    A3,B4,A3          ; |514| 
           ADD     .S2X    A5,B1,B4          ; |514| 
           SHL     .S2     B4,16,B4          ; |514| 
           ADD     .S2X    A3,B4,B4          ; |514| 
           SHR     .S2     B4,15,B4          ; |514| 
           STH     .D1T2   B4,*A4            ; |514| 
	.line	19
           SHR     .S2     B7,15,B4          ; |515| 
           STH     .D1T2   B4,*+A4(2)        ; |515| 
	.line	20
           SHR     .S2     B6,15,B4          ; |516| 
           STH     .D1T2   B4,*+A4(4)        ; |516| 
	.line	21
           SHR     .S2     B8,15,B4          ; |517| 
           STH     .D1T2   B4,*+A4(6)        ; |517| 
	.line	22
           SHR     .S2     B9,15,B4          ; |518| 
           STH     .D1T2   B4,*+A4(8)        ; |518| 
	.line	23
           SHR     .S2     B0,15,B4          ; |519| 
           STH     .D1T2   B4,*+A4(10)       ; |519| 
	.line	24
           SHR     .S2     B5,15,B4          ; |520| 
           STH     .D1T2   B4,*+A4(12)       ; |520| 
	.line	25
           SHR     .S1     A0,15,A0          ; |521| 
           STH     .D1T1   A0,*+A4(14)       ; |521| 
	.line	36
           B       .S2     B3                ; |532| 
           NOP             5
           ; BRANCH OCCURS                   ; |532| 
	.endfunc	532,000000000h,0


	.sect	".text"
	.global	_RLEComp
	.sym	_RLEComp,_RLEComp, 32, 2, 0
	.func	417

;******************************************************************************
;* FUNCTION NAME: _RLEComp                                                    *
;*                                                                            *
;*   Regs Modified     : A0,A1,A3,A4,A5,A7,A8,B0,B1,B4,B5,B6,B7,B8,B9         *
;*   Regs Used         : A0,A1,A3,A4,A5,A6,A7,A8,B0,B1,B3,B4,B5,B6,B7,B8,B9,  *
;*                           DP                                               *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_RLEComp:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_lpbuf,4, 19, 17, 32
	.sym	_lpOutBuf,20, 24, 17, 32, _tagACSYM
	.sym	_resultLen,6, 28, 17, 32
	.sym	_EndFlag,22, 4, 17, 32
	.sym	_j,21, 4, 4, 32
	.sym	_zeroNum,3, 12, 4, 8
	.sym	_lpbuf,4, 19, 4, 32
	.sym	_lpOutBuf,20, 24, 4, 32, _tagACSYM
	.sym	_resultLen,6, 28, 4, 32
	.sym	_EndFlag,22, 4, 4, 32
	.line	22
           CMPGT   .L2     B6,0,B1           ; |438| 
   [!B1]   B       .S1     L10               ; |438| 
           NOP             5
           ; BRANCH OCCURS                   ; |438| 
;** --------------------------------------------------------------------------*
	.line	24
	.line	3
           ZERO    .D1     A3                ; |419| 
	.line	7
           MVC     .S2     CSR,B9

           ZERO    .D2     B5                ; |423| 
||         MV      .L2     B6,B0
||         AND     .S2     -2,B9,B8

           MV      .L2X    A3,B7
||         MV      .D2     B4,B6
||         MVC     .S2     B8,CSR            ; interrupts off

;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*
;*      Loop source line               : 438
;*      Loop opening brace source line : 439
;*      Loop closing brace source line : 454
;*      Known Minimum Trip Count         : 1
;*      Known Max Trip Count Factor      : 1
;*      Loop Carried Dependency Bound(^) : 21
;*      Unpartitioned Resource Bound     : 5
;*      Partitioned Resource Bound(*)    : 5
;*      Resource Partition:
;*                                A-side   B-side
;*      .L units                     2        0     
;*      .S units                     1        1     
;*      .D units                     4        5*    
;*      .M units                     0        0     
;*      .X cross paths               1        1     
;*      .T address paths             5*       3     
;*      Long read paths              2        2     
;*      Long write paths             0        0     
;*      Logical  ops (.LS)           2        1     (.L or .S unit)
;*      Addition ops (.LSD)          1        4     (.L or .S or .D unit)
;*      Bound(.L .S .LS)             3        1     
;*      Bound(.L .S .D .LS .LSD)     4        4     
;*
;*      Searching for software pipeline schedule at ...
;*         ii = 21 Schedule found with 1 iterations in parallel
;*      done
;*
;*      Collapsed epilog stages     : 0
;*      Collapsed prolog stages     : 0
;*
;*      Minimum safe trip count     : 1
;*----------------------------------------------------------------------------*
L7:    ; PIPED LOOP PROLOG
;** --------------------------------------------------------------------------*
L8:    ; PIPED LOOP KERNEL

           CMPLTU  .L1     A3,15,A8          ; |440| 
||         LDH     .D1T1   *++A4,A0          ;  ^ |440| 

           NOP             2
           LDW     .D2T1   *+DP(_pVLITAB),A7 ; |448| 
           NOP             1
           CMPEQ   .L1     A0,0,A7           ;  ^ |440| 

           ADDAW   .D2     B6,B5,B8          ; |446| 
||         AND     .S1     A8,A7,A1          ;  ^ |440| 

   [!A1]   STB     .D2T2   B7,*B8            ;  ^ |446| 
   [!A1]   LDBU    .D1T1   *+A7[A0],A5       ;  ^ |448| 
   [!A1]   STH     .D2T1   A0,*+B8(2)        ; |449| 
           NOP             3
   [!A1]   STB     .D2T1   A5,*+B8(1)        ;  ^ |448| 

   [ B0]   SUB     .D2     B0,1,B0           ; |454| 
|| [!A1]   LDBU    .D1T2   *A6,B4            ;  ^ |451| 

   [ B0]   B       .S2     L8                ; |454| 
   [!A1]   ZERO    .D2     B7                ; |450| 
   [!A1]   MV      .S1X    B7,A3             ; Define a twin register
           ADD     .D1     1,A3,A0           ; |442| 

   [ A1]   EXTU    .S1     A0,24,24,A3       ; |442| 
||         ADD     .D2     1,B4,B8           ;  ^ |451| 

   [!A1]   ADD     .D2     1,B5,B5           ; |452| 
|| [ A1]   MV      .S2X    A3,B7             ; Define a twin register
|| [!A1]   STB     .D1T2   B8,*A6            ;  ^ |451| 

;** --------------------------------------------------------------------------*
L9:    ; PIPED LOOP EPILOG
;** --------------------------------------------------------------------------*
           MVC     .S2     B9,CSR            ; interrupts on
;** --------------------------------------------------------------------------*
L10:    
	.line	39
           B       .S2     B3                ; |455| 
           NOP             5
           ; BRANCH OCCURS                   ; |455| 
	.endfunc	455,000000000h,0


	.sect	".text"
	.global	_BuildSym2
	.sym	_BuildSym2,_BuildSym2, 40, 2, 0, _tagSYM2
	.func	457

;******************************************************************************
;* FUNCTION NAME: _BuildSym2                                                  *
;*                                                                            *
;*   Regs Modified     : A0,A1,A3,B0,B4,B5,SP                                 *
;*   Regs Used         : A0,A1,A3,A4,B0,B3,B4,B5,DP,SP                        *
;*   Local Frame Size  : 0 Args + 4 Auto + 0 Save = 4 byte                    *
;******************************************************************************
_BuildSym2:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_value,4, 3, 17, 16
	.sym	_value,4, 3, 4, 16
	.sym	_Symbol,4, 8, 1, 32, _tagSYM2

           SUB     .D2     SP,8,SP           ; |458| 
||         MV      .S2X    A3,B0             ; |458| 

	.line	5
           LDW     .D2T1   *+DP(_pVLITAB),A0 ; |461| 
           NOP             4
           LDBU    .D1T1   *+A0[A4],A0       ; |461| 
           NOP             4
           STB     .D2T1   A0,*+SP(6)        ; |461| 
	.line	6
           ZERO    .D2     B4                ; |462| 
           STH     .D2T2   B4,*+SP(4)        ; |462| 
	.line	7
           CMPLT   .L1     A4,0,A1           ; |463| 
	.line	13
   [ A1]   LDBU    .D2T2   *+SP(6),B5        ; |469| 
   [ A1]   MVK     .S2     (_mask-$bss),B4   ; |469| 
   [ A1]   ADD     .D2     DP,B4,B4          ; |469| 
           NOP             2
   [ A1]   LDHU    .D2T2   *+B4[B5],B4       ; |469| 
           NOP             4
   [ A1]   ADD     .S1X    A4,B4,A0          ; |469| 
   [ A1]   SUB     .D1     A0,1,A0           ; |469| 
   [ A1]   STH     .D2T1   A0,*+SP(4)        ; |469| 
	.line	9
   [!A1]   STH     .D2T1   A4,*+SP(4)        ; |465| 
	.line	17
           ADD     .S1X    4,SP,A0           ; |473| 
   [ B0]   LDH     .D1T2   *+A0(2),B4        ; |473| 
   [ B0]   LDH     .D1T1   *A0,A3            ; |473| 
           NOP             3
   [ B0]   STH     .D2T2   B4,*+B0(2)        ; |473| 
   [ B0]   STH     .D2T1   A3,*B0            ; |473| 
	.line	18
           B       .S2     B3                ; |474| 
           ADD     .D2     8,SP,SP           ; |474| 
           NOP             4
           ; BRANCH OCCURS                   ; |474| 
	.endfunc	474,000000000h,8


	.sect	".text"
	.global	_ProcessDU
	.sym	_ProcessDU,_ProcessDU, 32, 2, 0
	.func	204

;******************************************************************************
;* FUNCTION NAME: _ProcessDU                                                  *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,B0,B1, *
;*                           B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,SP           *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,B0,B1, *
;*                           B2,B3,B4,B5,B6,B7,B8,B9,B10,B11,B12,DP,SP        *
;*   Local Frame Size  : 0 Args + 440 Auto + 32 Save = 472 byte               *
;******************************************************************************
_ProcessDU:
;** --------------------------------------------------------------------------*
	.line	2
	.sym	_lpBuf,4, 19, 17, 32
	.sym	_quantTab,20, 30, 17, 32
	.sym	_dcHuffTab,6, 24, 17, 32, _tagHUFFCODE
	.sym	_acHuffTab,22, 24, 17, 32, _tagHUFFCODE
	.sym	_DC,8, 19, 17, 32
	.sym	_DC,26, 19, 4, 32
	.sym	_acHuffTab,11, 24, 4, 32, _tagHUFFCODE
	.sym	_dcHuffTab,13, 24, 4, 32, _tagHUFFCODE
	.sym	_quantTab,12, 30, 4, 32
	.sym	_lpBuf,10, 19, 4, 32
	.sym	_i,0, 4, 4, 32
	.sym	_EndBit,2, 4, 4, 32
	.sym	_diffVal,18, 3, 4, 16
	.sym	_acLen,4, 12, 1, 8
	.sym	_sigBuf,16, 51, 1, 1024,, 64
	.sym	_acSym,144, 56, 1, 2048, _tagACSYM, 64
	.sym	_huffCode,400, 8, 1, 48, _tagHUFFCODE
	.sym	_sym,406, 8, 1, 32, _tagSYM2
	.sym	_huffCode,410, 8, 1, 48, _tagHUFFCODE
	.sym	_huffCode,416, 8, 1, 48, _tagHUFFCODE

⌨️ 快捷键说明

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