📄 echo.asm
字号:
;* 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 + -