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

📄 pip_lio.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 3 页
字号:


	.sect	".text"
	.global	_PIP_LIO_rxPump
	.sym	_PIP_LIO_rxPump,_PIP_LIO_rxPump, 32, 2, 0
	.func	163

;******************************************************************************
;* FUNCTION NAME: _PIP_LIO_rxPump                                             *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;*                           B6,B7,B8,B9,B10,SP                               *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;*                           B6,B7,B8,B9,B10,DP,SP                            *
;*   Local Frame Size  : 0 Args + 4 Auto + 12 Save = 16 byte                  *
;******************************************************************************
_PIP_LIO_rxPump:
;** --------------------------------------------------------------------------*
	.sym	_chan,4, 14, 17, 32
	.sym	_parg,20, 4, 17, 32
	.sym	_validWords,4, 4, 1, 32
	.sym	_chan,10, 14, 4, 32
	.sym	_parg,26, 4, 4, 32
;** 168	-----------------------    if ( !(*drv->getBuf)(chan, NULL, &validWords) ) goto g2;
           STW     .D2T2   B10,*SP--(16)     ; |163| 
           STW     .D2T1   A10,*+SP(8)       ; |163| 
           STW     .D2T2   B3,*+SP(12)       ; |163| 
	.line	2

           MV      .L2     B4,B10            ; 
||         MV      .L1     A4,A10            ; 

	.line	6
           LDW     .D2T2   *+DP(_drv),B4     ; |168| 
           MVKL    .S2     RL27,B3           ; |168| 
           MVKH    .S2     RL27,B3           ; |168| 
           ADD     .L1X    4,SP,A6           ; 
           NOP             1
           LDW     .D2T2   *+B4(8),B5        ; |168| 
           ZERO    .L2     B4                ; |168| 
           NOP             3
           B       .S2     B5                ; |168| 
           NOP             5
RL27:      ; CALL OCCURS                     ; |168| 
           MV      .L1     A4,A1             ; |168| 
   [!A1]   B       .S1     L5                ; |168| 
           NOP             5
           ; BRANCH OCCURS                   ; |168| 
;** --------------------------------------------------------------------------*
;** 169	-----------------------    validWords = (unsigned)validWords>>2;
;** 170	-----------------------    ((struct _PIP_Obj *)parg)->writerSize = validWords;
;** 171	-----------------------    PIP_put((struct _PIP_Obj *)parg);
;** 175	-----------------------    PIP_LIO_rxPrime((int)chan, (struct _PIP_Obj *)parg);
;**	-----------------------g2:
;**  	-----------------------    return;
	.line	7
           LDW     .D2T2   *+SP(4),B4        ; |169| 
           NOP             4
           SHRU    .S2     B4,2,B4           ; |169| 
           STW     .D2T2   B4,*+SP(4)        ; |169| 
	.line	8
           LDW     .D2T2   *+SP(4),B4        ; |170| 
           NOP             4
           STW     .D2T2   B4,*+B10(60)      ; |170| 
	.line	9
           B       .S1     _PIP_put          ; |171| 
           MVKL    .S2     RL28,B3           ; |171| 
           MVKH    .S2     RL28,B3           ; |171| 
           MV      .L1X    B10,A4            ; |171| 
           NOP             2
RL28:      ; CALL OCCURS                     ; |171| 
	.line	13
           B       .S1     _PIP_LIO_rxPrime  ; |175| 
           MVKL    .S2     RL30,B3           ; |175| 
           MV      .L1     A10,A4            ; 
           MV      .L2     B10,B4            ; 
           MVKH    .S2     RL30,B3           ; |175| 
           NOP             1
RL30:      ; CALL OCCURS                     ; |175| 
;** --------------------------------------------------------------------------*
L5:    
	.line	15
           LDW     .D2T2   *+SP(12),B3       ; |177| 
           LDW     .D2T1   *+SP(8),A10       ; |177| 
           LDW     .D2T2   *++SP(16),B10     ; |177| 
           NOP             2
           B       .S2     B3                ; |177| 
           NOP             5
           ; BRANCH OCCURS                   ; |177| 
	.endfunc	177,004080400h,16



	.sect	".cinit:c"
	.align	4
	.field  	0,32			; _nested$2 @ 0

	.sect	".text"
	.sect	".text"
	.global	_PIP_LIO_rxPrime
	.sym	_PIP_LIO_rxPrime,_PIP_LIO_rxPrime, 32, 2, 0
	.func	184

;******************************************************************************
;* FUNCTION NAME: _PIP_LIO_rxPrime                                            *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B0,B1,B2,B3,B4,*
;*                           B5,B6,B7,B8,B9,SP                                *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,B0,B1,B2,B3,B4,*
;*                           B5,B6,B7,B8,B9,DP,SP                             *
;*   Local Frame Size  : 0 Args + 0 Auto + 12 Save = 12 byte                  *
;******************************************************************************
_PIP_LIO_rxPrime:
;** --------------------------------------------------------------------------*
	.sym	_chan,4, 4, 17, 32
	.sym	_pip,20, 24, 17, 32, _PIP_Obj
_nested$2:	.usect	".bss:c",4,4
	.sym	_nested,_nested$2, 4, 3, 32
	.sym	_chan,11, 4, 4, 32
	.sym	_pip,10, 24, 4, 32, _PIP_Obj
;** 188	-----------------------    if ( nested ) goto g5;
           STW     .D2T2   B3,*SP--(16)      ; |184| 
           STW     .D2T1   A10,*+SP(8)       ; |184| 
           STW     .D2T1   A11,*+SP(12)      ; |184| 
	.line	2

           MV      .L1     A4,A11            ; 
||         MV      .S1X    B4,A10            ; 

	.line	5
           LDW     .D2T2   *+DP(_nested$2),B0 ; |188| 
           NOP             4
   [ B0]   B       .S1     L8                ; |188| 
           NOP             5
           ; BRANCH OCCURS                   ; |188| 
;** --------------------------------------------------------------------------*
;** 189	-----------------------    nested = 1;
;** 199	-----------------------    HWI_disable();
;** 200	-----------------------    if ( (*drv->isEmpty)((unsigned)chan) && pip->writerNumFrames ) goto g3;
	.line	6
           MVK     .S1     1,A0              ; |189| 
           STW     .D2T1   A0,*+DP(_nested$2) ; |189| 
	.line	16
           B       .S1     _HWI_disable      ; |199| 
           MVKL    .S2     RL32,B3           ; |199| 
           MVKH    .S2     RL32,B3           ; |199| 
           NOP             3
RL32:      ; CALL OCCURS                     ; |199| 
	.line	17
           LDW     .D2T2   *+DP(_drv),B4     ; |200| 
           MVKL    .S2     RL34,B3           ; |200| 
           MVKH    .S2     RL34,B3           ; |200| 
           MV      .L1     A11,A4            ; |200| 
           NOP             1
           LDW     .D2T2   *+B4(16),B4       ; |200| 
           NOP             4
           B       .S2     B4                ; |200| 
           NOP             5
RL34:      ; CALL OCCURS                     ; |200| 
           MV      .L1     A4,A2             ; 
   [ A2]   LDW     .D1T1   *+A10(72),A4      ; |200| 
           NOP             4
           MV      .L1     A4,A1             ; |200| 
   [ A1]   B       .S1     L6                ; |200| 
           NOP             5
           ; BRANCH OCCURS                   ; |200| 
;** --------------------------------------------------------------------------*
;** 207	-----------------------    HWI_enable();
;** 207	-----------------------    goto g4;
	.line	24
           B       .S1     _HWI_enable       ; |207| 
           MVKL    .S2     RL35,B3           ; |207| 
           MVKH    .S2     RL35,B3           ; |207| 
           NOP             3
RL35:      ; CALL OCCURS                     ; |207| 
           B       .S1     L7                ; |207| 
           NOP             5
           ; BRANCH OCCURS                   ; |207| 
;** --------------------------------------------------------------------------*
L6:    
;**	-----------------------g3:
;** 201	-----------------------    HWI_enable();
;** 202	-----------------------    PIP_alloc(pip);
;** 203	-----------------------    (*drv->setBuf)((unsigned)chan, pip->writerAddr, pip->writerSize*4u);
	.line	18
           B       .S1     _HWI_enable       ; |201| 
           MVKL    .S2     RL37,B3           ; |201| 
           MVKH    .S2     RL37,B3           ; |201| 
           NOP             3
RL37:      ; CALL OCCURS                     ; |201| 
	.line	19
           B       .S1     _PIP_alloc        ; |202| 
           MVKL    .S2     RL39,B3           ; |202| 
           MVKH    .S2     RL39,B3           ; |202| 
           MV      .L1     A10,A4            ; |202| 
           NOP             2
RL39:      ; CALL OCCURS                     ; |202| 
	.line	20
           LDW     .D2T2   *+DP(_drv),B4     ; |203| 
           LDW     .D1T1   *+A10(60),A0      ; |203| 
           MVKL    .S2     RL41,B3           ; |203| 
           MV      .L1     A11,A4            ; 
           MVKH    .S2     RL41,B3           ; |203| 
           LDW     .D2T2   *+B4(24),B5       ; |203| 
           LDW     .D1T2   *+A10(56),B4      ; 
           SHL     .S1     A0,2,A6           ; |203| 
           NOP             2
           B       .S2     B5                ; |203| 
           NOP             5
RL41:      ; CALL OCCURS                     ; |203| 
;** --------------------------------------------------------------------------*
L7:    
;**	-----------------------g4:
;** 211	-----------------------    nested = 0;
;**	-----------------------g5:
;**  	-----------------------    return;
	.line	28
           ZERO    .L2     B4                ; |211| 
           STW     .D2T2   B4,*+DP(_nested$2) ; |211| 
;** --------------------------------------------------------------------------*
L8:    
	.line	29
           LDW     .D2T1   *+SP(12),A11      ; |212| 
           LDW     .D2T1   *+SP(8),A10       ; |212| 
           LDW     .D2T2   *++SP(16),B3      ; |212| 
           NOP             4
           B       .S2     B3                ; |212| 
           NOP             5
           ; BRANCH OCCURS                   ; |212| 
	.endfunc	212,000080c00h,16


;******************************************************************************
;* MARK THE END OF THE SCALAR INIT RECORD IN CINIT:C                          *
;******************************************************************************
CIR:	.sect	".cinit:c"
;******************************************************************************
;* ADDRESS RELOCATIONS - SCALARS                                              *
;******************************************************************************
	.sect	".cinit:c"
	.align	8
	.field	-4,32
	.align	4
	.field  	_drv,32
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_PIP_alloc
	.global	_PIP_free
	.global	_PIP_get
	.global	_PIP_put
	.global	_txPip1
	.global	_rxPip0
	.global	_txPip0
	.global	_HWI_disable
	.global	_HWI_enable
	.global	_rxPip1
	.global	_PIP_LIO_FXNS

⌨️ 快捷键说明

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