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

📄 echo.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;*                           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     RL28,B3           ; |137| 
           ADD     .D2     SP,16,B4          ; |137| 
           MVKH    .S2     RL28,B3           ; |137| 
           ADD     .L1X    12,SP,A6          ; 
RL28:      ; CALL OCCURS                     ; |137| 
           MV      .L1     A4,A1             ; |137| 
   [!A1]   B       .S1     L9                ; |137| 
           NOP             5
           ; BRANCH OCCURS                   ; |137| 
;** --------------------------------------------------------------------------*
;** 143	-----------------------    if ( !getOutputBuf(C$1->txPip, &outBufAddr, &outBufSize) ) goto g3;
	.line	17
           B       .S1     _getOutputBuf     ; |143| 
           LDW     .D1T1   *+A10(4),A4       ; 
           MVKL    .S2     RL30,B3           ; |143| 
           MVKH    .S2     RL30,B3           ; |143| 
           ADD     .L2     8,SP,B4           ; |143| 
           ADD     .L1X    4,SP,A6           ; 
RL30:      ; CALL OCCURS                     ; |143| 
           MV      .L1     A4,A1             ; |143| 
   [!A1]   B       .S1     L9                ; |143| 
           NOP             5
           ; BRANCH OCCURS                   ; |143| 
;** --------------------------------------------------------------------------*
;** 152	-----------------------    doLoad(C$1->procLoad);
;** 153	-----------------------    memcpy(outBufAddr, inBufAddr, *inBufSize*4u);
;** 154	-----------------------    *outBufSize = *inBufSize;
;** 157	-----------------------    completeProcessing(C$1->rxPip, C$1->txPip);
;**	-----------------------g3:
;**  	-----------------------    return;
	.line	26
           B       .S1     _doLoad           ; |152| 
           LDW     .D1T1   *+A10(8),A4       ; |152| 
           MVKL    .S2     RL32,B3           ; |152| 
           MVKH    .S2     RL32,B3           ; |152| 
           NOP             2
RL32:      ; CALL OCCURS                     ; |152| 
	.line	27
           LDW     .D2T2   *+SP(12),B4       ; |153| 
           LDW     .D2T1   *+SP(8),A4        ; 
           MVKL    .S2     RL34,B3           ; |153| 
           MVKH    .S2     RL34,B3           ; |153| 
           NOP             1
           LDW     .D2T2   *B4,B4            ; |153| 
           NOP             3
           B       .S1     _memcpy           ; |153| 

           SHL     .S2     B4,2,B5           ; |153| 
||         LDW     .D2T2   *+SP(16),B4       ; 

           MV      .L1X    B5,A6             ; |153| 
           NOP             3
RL34:      ; CALL OCCURS                     ; |153| 
	.line	28
           LDW     .D2T2   *+SP(12),B4       ; |154| 
           LDW     .D2T2   *+SP(4),B5        ; |154| 
           NOP             3
           LDW     .D2T2   *B4,B4            ; |154| 
           NOP             4
           STW     .D2T2   B4,*B5            ; |154| 
	.line	31

           B       .S1     _completeProcessing ; |157| 
||         LDW     .D1T2   *+A10(4),B4       ; 

           LDW     .D1T1   *A10,A4           ; 
           MVKL    .S2     RL36,B3           ; |157| 
           MVKH    .S2     RL36,B3           ; |157| 
           NOP             2
RL36:      ; CALL OCCURS                     ; |157| 
;** --------------------------------------------------------------------------*
L9:    
	.line	33
           LDW     .D2T1   *+SP(20),A10      ; |159| 
           LDW     .D2T2   *++SP(24),B3      ; |159| 
           NOP             4
           B       .S2     B3                ; |159| 
           NOP             5
           ; BRANCH OCCURS                   ; |159| 
	.endfunc	159,000080400h,24


	.sect	".text"
	.global	_initializeChannelData
	.sym	_initializeChannelData,_initializeChannelData, 32, 2, 0
	.func	161

;******************************************************************************
;* FUNCTION NAME: _initializeChannelData                                      *
;*                                                                            *
;*   Regs Modified     : A0,B4,B5,B6                                          *
;*   Regs Used         : A0,B3,B4,B5,B6,DP                                    *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_initializeChannelData:
;** --------------------------------------------------------------------------*
	.sym	C$1,20, 24, 4, 32, _dataChannel
	.sym	C$2,22, 4, 4, 32
;** 167	-----------------------    C$1 = &audioChannel[0];
;** 167	-----------------------    C$1->rxPip = &rxPip0;
;** 168	-----------------------    C$1->txPip = &txPip0;
;** 169	-----------------------    C$1->procLoad = C$2 = 0;
;** 173	-----------------------    *((struct _PIP_Obj **)C$1+12) = &rxPip1;
;** 174	-----------------------    *((struct _PIP_Obj **)C$1+16) = &txPip1;
;** 175	-----------------------    *((int *)C$1+20) = C$2;
;** 175	-----------------------    return;
	.line	7
           MVK     .S2     (_audioChannel-$bss),B4 ; |167| 
           ADD     .L2     DP,B4,B4          ; 
           MVKL    .S2     _rxPip0,B5        ; |167| 
           MVKH    .S2     _rxPip0,B5        ; |167| 
           STW     .D2T2   B5,*B4            ; |167| 
	.line	8
           MVKL    .S1     _txPip0,A0        ; |168| 
           MVKH    .S1     _txPip0,A0        ; |168| 
           STW     .D2T1   A0,*+B4(4)        ; |168| 
	.line	9
           ZERO    .L2     B6                ; |169| 
           STW     .D2T2   B6,*+B4(8)        ; |169| 
	.line	13
           MVKL    .S2     _rxPip1,B5        ; |173| 
           MVKH    .S2     _rxPip1,B5        ; |173| 
           STW     .D2T2   B5,*+B4(12)       ; |173| 
	.line	14
           MVKL    .S1     _txPip1,A0        ; |174| 
           MVKH    .S1     _txPip1,A0        ; |174| 
           STW     .D2T1   A0,*+B4(16)       ; |174| 
	.line	15
           STW     .D2T2   B6,*+B4(20)       ; |175| 
	.line	16
           B       .S2     B3                ; |176| 
           NOP             5
           ; BRANCH OCCURS                   ; |176| 
	.endfunc	176,000000000h,0


	.sect	".text"
	.global	_main
	.sym	_main,_main, 32, 2, 0
	.func	178

;******************************************************************************
;* FUNCTION NAME: _main                                                       *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Local Frame Size  : 0 Args + 0 Auto + 4 Save = 4 byte                    *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
;** 180	-----------------------    initializeChannelData();
;** 181	-----------------------    DSS_init();
;** 181	-----------------------    return;
           STW     .D2T2   B3,*SP--(8)       ; |178| 
	.line	3
           B       .S1     _initializeChannelData ; |180| 
           MVKL    .S2     RL38,B3           ; |180| 
           MVKH    .S2     RL38,B3           ; |180| 
           NOP             3
RL38:      ; CALL OCCURS                     ; |180| 
	.line	4
           B       .S1     _DSS_init         ; |181| 
           MVKL    .S2     RL40,B3           ; |181| 
           MVKH    .S2     RL40,B3           ; |181| 
           NOP             3
RL40:      ; CALL OCCURS                     ; |181| 
	.line	5
           LDW     .D2T2   *++SP(8),B3       ; |182| 
           NOP             4
           B       .S2     B3                ; |182| 
           NOP             5
           ; BRANCH OCCURS                   ; |182| 
	.endfunc	182,000080000h,8


;******************************************************************************
;* STRINGS                                                                    *
;******************************************************************************
	.sect	".const"
SL1:	.string	"getInputBuf: no frames on inPip 0x%x",0
SL2:	.string	"getInputBuf calling PIP_get for PIP 0x%x",0
SL3:	.string	"getOutputBuf: no frames on outPip 0x%x",0
SL4:	.string	"getOutputBuf calling PIP_alloc for PIP 0x%x",0
SL5:	.string	"completeProcessing calling PIP_free for PIP 0x%x",0
SL6:	.string	"completeProcessing calling PIP_put for PIP 0x%x",0
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_TRC_query
	.global	_LOG_event
	.global	_PIP_alloc
	.global	_PIP_free
	.global	_PIP_get
	.global	_PIP_put
	.global	_DSS_init
	.global	_doLoad
	.global	_rxPip1
	.global	_rxPip0
	.global	_txPip1
	.global	_txPip0
	.global	_LOG_D_system
	.global	_memcpy

⌨️ 快捷键说明

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