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

📄 echo.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;******************************************************************************
_getOutputBuf:
;** --------------------------------------------------------------------------*
	.sym	_aPip,4, 24, 17, 32, _PIP_Obj
	.sym	_bufAddr,20, 80, 17, 32
	.sym	_bufSize,6, 94, 17, 32
	.sym	_aPip,10, 24, 4, 32, _PIP_Obj
	.sym	_bufAddr,12, 80, 4, 32
	.sym	_bufSize,11, 94, 4, 32
;** 101	-----------------------    if ( !aPip->writerNumFrames ) goto g2;
           STW     .D2T2   B3,*SP--(24)      ; |99| 
           STW     .D2T1   A10,*+SP(12)      ; |99| 
           STW     .D2T1   A11,*+SP(16)      ; |99| 
           STW     .D2T1   A12,*+SP(20)      ; |99| 
	.line	2

           MV      .L1     A4,A10            ; 
||         MV      .D1     A6,A11            ; 
||         MV      .S1X    B4,A12            ; 

	.line	3
           LDW     .D1T1   *+A10(72),A1      ; |101| 
           NOP             4
   [!A1]   B       .S1     L3                ; |101| 
           NOP             5
           ; BRANCH OCCURS                   ; |101| 
;** --------------------------------------------------------------------------*
;** 106	-----------------------    LOG_printf(&trace, "getOutputBuf calling PIP_alloc for PIP 0x%x", (int)aPip);
;** 107	-----------------------    PIP_alloc(aPip);
;** 107	-----------------------    *bufAddr = aPip->writerAddr;
;** 110	-----------------------    *bufSize = &aPip->writerSize;
;** 111	-----------------------    return 1u;
	.line	8
           B       .S1     _LOG_printf       ; |106| 
           MVKL    .S2     _trace,B4         ; |106| 
           MVKL    .S2     RL6,B3            ; |106| 
           MVKL    .S1     SL3+0,A0          ; |106| 

           MVKH    .S2     _trace,B4         ; |106| 
||         MVKH    .S1     SL3+0,A0          ; |106| 
||         STW     .D2T1   A10,*+SP(8)       ; |106| 

           MV      .L1X    B4,A4             ; |106| 
||         STW     .D2T1   A0,*+SP(4)        ; |106| 
||         MVKH    .S2     RL6,B3            ; |106| 

RL6:       ; CALL OCCURS                     ; |106| 
	.line	9
           B       .S1     _PIP_alloc        ; |107| 
           MVKL    .S2     RL8,B3            ; |107| 
           MV      .L1     A10,A4            ; |107| 
           MVKH    .S2     RL8,B3            ; |107| 
           NOP             2
RL8:       ; CALL OCCURS                     ; |107| 
           LDW     .D1T1   *+A10(56),A0      ; |107| 
           NOP             4
           STW     .D1T1   A0,*A12           ; |107| 
	.line	12
           ADDAW   .D1     A10,15,A0         ; |110| 
           STW     .D1T1   A0,*A11           ; |110| 
	.line	13
           B       .S1     L4                ; |111| 
           MVK     .S1     0x1,A4            ; |111| 
           NOP             4
           ; BRANCH OCCURS                   ; |111| 
;** --------------------------------------------------------------------------*
L3:    
;**	-----------------------g2:
;** 102	-----------------------    LOG_event(LOG_D_system, (int)aPip, (int)"getOutputBuf: no frames on outPip 0x%x", 9);
;** 103	-----------------------    return 0u;
	.line	4
           B       .S1     _LOG_event        ; |102| 
           LDW     .D2T1   *+DP(_LOG_D_system),A4 ; |102| 
           MVKL    .S2     RL10,B3           ; |102| 
           MVK     .S2     0x9,B6            ; |102| 
           MVKL    .S1     SL4+0,A6          ; |102| 

           MVKH    .S1     SL4+0,A6          ; |102| 
||         MVKH    .S2     RL10,B3           ; |102| 
||         MV      .L2X    A10,B4            ; 

RL10:      ; CALL OCCURS                     ; |102| 
	.line	5
           ZERO    .L1     A4                ; |103| 
;** --------------------------------------------------------------------------*
L4:    
	.line	14
           LDW     .D2T1   *+SP(20),A12      ; |112| 
           LDW     .D2T1   *+SP(16),A11      ; |112| 
           LDW     .D2T1   *+SP(12),A10      ; |112| 
           LDW     .D2T2   *++SP(24),B3      ; |112| 
           NOP             4
           B       .S2     B3                ; |112| 
           NOP             5
           ; BRANCH OCCURS                   ; |112| 
	.endfunc	112,000081c00h,24


	.sect	".text"
	.global	_completeProcessing
	.sym	_completeProcessing,_completeProcessing, 32, 2, 0
	.func	114

;******************************************************************************
;* FUNCTION NAME: _completeProcessing                                         *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,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,A11,B0,B1,B2,B3,B4,*
;*                           B5,B6,B7,B8,B9,B10,SP                            *
;*   Local Frame Size  : 8 Args + 0 Auto + 16 Save = 24 byte                  *
;******************************************************************************
_completeProcessing:
;** --------------------------------------------------------------------------*
	.sym	_inPip,4, 24, 17, 32, _PIP_Obj
	.sym	_outPip,20, 24, 17, 32, _PIP_Obj
	.sym	C$1,10, 24, 4, 32, _LOG_Obj
	.sym	_inPip,11, 24, 4, 32, _PIP_Obj
	.sym	_outPip,26, 24, 4, 32, _PIP_Obj
;** 120	-----------------------    C$1 = &trace;
;** 120	-----------------------    LOG_printf(C$1, "completeProcessing calling PIP_free for PIP 0x%x", (int)inPip);
;** 121	-----------------------    PIP_free(inPip);
;** 122	-----------------------    LOG_printf(C$1, "completeProcessing calling PIP_put for PIP 0x%x", (int)outPip);
;** 123	-----------------------    PIP_put(outPip);
;** 123	-----------------------    return;
           STW     .D2T2   B10,*SP--(24)     ; |114| 
           STW     .D2T1   A10,*+SP(12)      ; |114| 
           STW     .D2T1   A11,*+SP(16)      ; |114| 
           STW     .D2T2   B3,*+SP(20)       ; |114| 
	.line	2

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

	.line	7
           MVKL    .S1     _trace,A10        ; |120| 
           MVKH    .S1     _trace,A10        ; |120| 
           B       .S1     _LOG_printf       ; |120| 
           MVKL    .S2     SL5+0,B4          ; |120| 
           MVKH    .S2     SL5+0,B4          ; |120| 
           STW     .D2T2   B4,*+SP(4)        ; |120| 
           MVKL    .S2     RL12,B3           ; |120| 

           MV      .L1     A10,A4            ; |120| 
||         STW     .D2T1   A11,*+SP(8)       ; |120| 
||         MVKH    .S2     RL12,B3           ; |120| 

RL12:      ; CALL OCCURS                     ; |120| 
	.line	8
           B       .S1     _PIP_free         ; |121| 
           MVKL    .S2     RL14,B3           ; |121| 
           MV      .L1     A11,A4            ; |121| 
           MVKH    .S2     RL14,B3           ; |121| 
           NOP             2
RL14:      ; CALL OCCURS                     ; |121| 
	.line	9
           B       .S1     _LOG_printf       ; |122| 
           MVKL    .S2     SL6+0,B4          ; |122| 
           MVKH    .S2     SL6+0,B4          ; |122| 
           STW     .D2T2   B10,*+SP(8)       ; |122| 
           MVKL    .S2     RL16,B3           ; |122| 

           MV      .L1     A10,A4            ; |122| 
||         STW     .D2T2   B4,*+SP(4)        ; |122| 
||         MVKH    .S2     RL16,B3           ; |122| 

RL16:      ; CALL OCCURS                     ; |122| 
	.line	10
           B       .S1     _PIP_put          ; |123| 
           MVKL    .S2     RL18,B3           ; |123| 
           MV      .L1X    B10,A4            ; |123| 
           MVKH    .S2     RL18,B3           ; |123| 
           NOP             2
RL18:      ; CALL OCCURS                     ; |123| 
	.line	11
           LDW     .D2T2   *+SP(20),B3       ; |124| 
           LDW     .D2T1   *+SP(16),A11      ; |124| 
           LDW     .D2T1   *+SP(12),A10      ; |124| 
           LDW     .D2T2   *++SP(24),B10     ; |124| 
           NOP             1
           B       .S2     B3                ; |124| 
           NOP             5
           ; BRANCH OCCURS                   ; |124| 
	.endfunc	124,004080c00h,24


	.sect	".text"
	.global	_processChannelBuf
	.sym	_processChannelBuf,_processChannelBuf, 32, 2, 0
	.func	127

;******************************************************************************
;* FUNCTION NAME: _processChannelBuf                                          *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;*                           B6,B7,B8,B9,SP                                   *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;*                           B6,B7,B8,B9,DP,SP                                *
;*   Local Frame Size  : 0 Args + 16 Auto + 8 Save = 24 byte                  *
;******************************************************************************
_processChannelBuf:
;** --------------------------------------------------------------------------*
	.sym	_channelNum,4, 4, 17, 32
	.sym	C$1,10, 24, 4, 32, _dataChannel
	.sym	_outBufSize,4, 30, 1, 32
	.sym	_outBufAddr,8, 16, 1, 32
	.sym	_inBufSize,12, 30, 1, 32
	.sym	_inBufAddr,16, 16, 1, 32
	.sym	_channelNum,4, 4, 4, 32
;** 137	-----------------------    C$1 = &audioChannel[channelNum];
;** 137	-----------------------    if ( !getInputBuf(C$1->rxPip, &inBufAddr, &inBufSize) ) goto g3;
           STW     .D2T2   B3,*SP--(24)      ; |127| 
           STW     .D2T1   A10,*+SP(20)      ; |127| 
	.line	2
	.line	11

           MVK     .S2     (_audioChannel-$bss),B4 ; |137| 
||         SHL     .S1     A4,3,A0           ; |137| 

           ADD     .L2     DP,B4,B4          ; |137| 
||         ADDAW   .D1     A0,A4,A0          ; |137| 

           ADD     .L1X    B4,A0,A10         ; |137| 
           B       .S1     _getInputBuf      ; |137| 
           LDW     .D1T1   *A10,A4           ; 
           MVKL    .S2     RL20,B3           ; |137| 
           ADD     .D2     SP,16,B4          ; |137| 

⌨️ 快捷键说明

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