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

📄 mcbsp_ad535.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           NOP             4
           B       .S2     B3                ; |134| 
           NOP             5
           ; BRANCH OCCURS                   ; |134| 
	.endfunc	134,000080000h,8


	.sect	".text"
	.global	_chanIsr
	.sym	_chanIsr,_chanIsr, 32, 2, 0
	.func	144

;******************************************************************************
;* FUNCTION NAME: _chanIsr                                                    *
;*                                                                            *
;*   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 + 0 Auto + 8 Save = 8 byte                    *
;******************************************************************************
_chanIsr:
;** --------------------------------------------------------------------------*
	.sym	_chan,4, 14, 17, 32
	.sym	C$2,16, 144, 4, 32
	.sym	C$3,4, 14, 4, 32
	.sym	C$4,20, 24, 4, 32, _drv_state
	.sym	C$5,16, 144, 4, 32
	.sym	C$6,20, 24, 4, 32, _drv_state
	.sym	C$7,20, 24, 4, 32, _drv_state
	.sym	C$8,20, 24, 4, 32, _drv_state
	.sym	C$9,20, 24, 4, 32, _drv_state
	.sym	C$10,0, 24, 4, 32, _drv_state
	.sym	C$11,20, 24, 4, 32, _drv_state
	.sym	C$12,21, 24, 4, 32, _drv_state
	.sym	C$13,20, 24, 4, 32, _drv_state
	.sym	C$14,21, 24, 4, 32, _drv_state
	.sym	C$15,21, 24, 4, 32, _drv_state
	.sym	_chan,10, 14, 4, 32
	.sym	R$1,20, 14, 4, 32
;** 147	-----------------------    if ( !(chan*44+&chans)->currentPtr ) goto g19;
           STW     .D2T2   B3,*SP--(8)       ; |144| 
           STW     .D2T1   A10,*+SP(4)       ; |144| 
	.line	2
           MV      .L1     A4,A10            ; |145| 
	.line	4
           MVK     .S1     44,A3             ; |147| 
           MPYLHU  .M1     A3,A10,A0         ; |147| 
           MPYU    .M1     A3,A10,A3         ; |147| 

           SHL     .S1     A0,16,A0          ; |147| 
||         MVK     .S2     (_chans+12-$bss),B4 ; |147| 

           ADD     .L1     A3,A0,A0          ; |147| 
||         ADD     .L2     DP,B4,B4          ; |147| 

           ADD     .L2X    B4,A0,B4          ; |147| 
           LDW     .D2T2   *B4,B0            ; |147| 
           NOP             4
   [!B0]   B       .S1     L8                ; |147| 
           NOP             5
           ; BRANCH OCCURS                   ; |147| 
;** --------------------------------------------------------------------------*
;** 162	-----------------------    switch ( chan ) {...};
	.line	19
           MV      .L1     A10,A1            ; 
   [!A1]   B       .S1     L2                ; |162| 
           CMPEQ   .L1     A10,1,A2          ; 
           NOP             4
           ; BRANCH OCCURS                   ; |162| 
;** --------------------------------------------------------------------------*
   [ A2]   B       .S1     L1                ; |162| 
           NOP             5
           ; BRANCH OCCURS                   ; |162| 
;** --------------------------------------------------------------------------*
;**	-----------------------g2:
;** 162	-----------------------    SYS_abort("mcbsp_code: bad channel number");
;** 162	-----------------------    goto g5;
           B       .S1     _SYS_abort        ; |162| 
           MVKL    .S1     SL1+0,A4          ; |162| 
           MVKL    .S2     RL4,B3            ; |162| 
           MVKH    .S1     SL1+0,A4          ; |162| 
           MVKH    .S2     RL4,B3            ; |162| 
           NOP             1
RL4:       ; CALL OCCURS                     ; |162| 
           B       .S1     L3                ; |162| 
           NOP             5
           ; BRANCH OCCURS                   ; |162| 
;** --------------------------------------------------------------------------*
L1:    
;**	-----------------------g3:
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ENTERING MCBSP_Write()
;** 157	-----------------------    *(hMcbsp->BaseAddr+4) = _extu((unsigned)*(unsigned short *)(chan*44+&chans)->currentPtr, 16u...
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< LEAVING MCBSP_Write()
;** 157	-----------------------    goto g5;
	.line	14
           MVK     .S1     44,A3             ; |157| 
           MPYLHU  .M1     A3,A10,A0         ; |157| 
           MPYU    .M1     A3,A10,A3         ; |157| 

           SHL     .S1     A0,16,A0          ; |157| 
||         MVK     .S2     (_chans+12-$bss),B4 ; |157| 

           ADD     .L1     A3,A0,A0          ; |157| 
||         ADD     .L2     DP,B4,B4          ; |157| 

           ADD     .L2X    B4,A0,B4          ; |157| 
           LDW     .D2T2   *B4,B4            ; |157| 
           LDW     .D2T2   *+DP(_hMcbsp),B5  ; |157| 
           NOP             3
           LDHU    .D2T2   *B4,B4            ; |157| 
           LDW     .D2T2   *+B5(12),B5       ; |157| 
           NOP             3
           EXTU    .S2     B4,16,17,B4       ; |157| 
           SHL     .S2     B4,1,B4           ; |157| 
           STW     .D2T2   B4,*+B5(4)        ; |157| 
           B       .S1     L3                ; |157| 
           NOP             5
           ; BRANCH OCCURS                   ; |157| 
;** --------------------------------------------------------------------------*
L2:    
;**	-----------------------g4:
; >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ENTERING MCBSP_Read()
;** 153	-----------------------    R$1 = *hMcbsp->BaseAddr;
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< LEAVING MCBSP_Read()
;** 153	-----------------------    *(unsigned short *)(chan*44+&chans)->currentPtr = R$1;
	.line	10
           LDW     .D2T2   *+DP(_hMcbsp),B4  ; |153| 
           NOP             4
           LDW     .D2T2   *+B4(12),B4       ; |153| 
           NOP             4
           LDW     .D2T2   *B4,B4            ; |153| 
           MVK     .S1     44,A0             ; |153| 
           MPYLHU  .M1     A0,A10,A3         ; |153| 
           MPYU    .M1     A0,A10,A0         ; |153| 

           SHL     .S1     A3,16,A3          ; |153| 
||         MVK     .S2     (_chans+12-$bss),B5 ; |153| 

           ADD     .L1     A0,A3,A0          ; |153| 
||         ADD     .L2     DP,B5,B5          ; |153| 

           ADD     .L1X    B5,A0,A0          ; |153| 
           LDW     .D1T1   *A0,A0            ; |153| 
           NOP             4
           STH     .D1T2   B4,*A0            ; |153| 
;** --------------------------------------------------------------------------*
L3:    
;**	-----------------------g5:
;** 165	-----------------------    C$15 = &chans[0];
;** 165	-----------------------    C$13 = &C$15[chan];
;** 165	-----------------------    C$13->currentPtr = C$13->currentPtr+2u;
;** 166	-----------------------    C$13->currentCount = C$13->currentCount-1u;
;** 168	-----------------------    C$14 = &C$15[chan+2u];
;** 168	-----------------------    C$14->currentPtr = C$14->currentPtr+2u;
;** 169	-----------------------    C$14->currentCount = C$14->currentCount-1u;
;** 171	-----------------------    if ( C$13->currentCount ) goto g19;
	.line	22
           MVK     .S2     (_chans-$bss),B4  ; |165| 
           ADD     .L2     DP,B4,B5          ; 
           MVK     .S2     44,B6             ; |165| 
           MPYLHU  .M2X    B6,A10,B4         ; |165| 
           MPYU    .M2X    B6,A10,B6         ; |165| 
           SHL     .S2     B4,16,B4          ; |165| 
           ADD     .L2     B6,B4,B4          ; |165| 
           ADD     .L2     B5,B4,B4          ; |165| 
           LDW     .D2T2   *+B4(12),B6       ; |165| 
           NOP             4
           ADD     .L2     2,B6,B6           ; |165| 
           STW     .D2T2   B6,*+B4(12)       ; |165| 
	.line	23
           LDW     .D2T2   *+B4(16),B6       ; |166| 
           NOP             4
           SUB     .L2     B6,1,B6           ; |166| 
           STW     .D2T2   B6,*+B4(16)       ; |166| 
	.line	25
           MVK     .S1     44,A3             ; |168| 
           MPYLHU  .M1     A3,A10,A0         ; |168| 
           MPYU    .M1     A3,A10,A3         ; |168| 
           SHL     .S1     A0,16,A0          ; |168| 
           ADD     .L1     A3,A0,A0          ; |168| 
           ADD     .L2X    B5,A0,B5          ; |168| 
           ADDAW   .D2     B5,22,B5          ; |168| 
           LDW     .D2T2   *+B5(12),B6       ; |168| 
           NOP             4
           ADD     .L2     2,B6,B6           ; |168| 
           STW     .D2T2   B6,*+B5(12)       ; |168| 
	.line	26
           LDW     .D2T2   *+B5(16),B6       ; |169| 
           NOP             4
           SUB     .L2     B6,1,B6           ; |169| 
           STW     .D2T2   B6,*+B5(16)       ; |169| 
	.line	28
           LDW     .D2T2   *+B4(16),B0       ; |171| 
           NOP             4
   [ B0]   B       .S1     L8                ; |171| 
           NOP             5
           ; BRANCH OCCURS                   ; |171| 
;** --------------------------------------------------------------------------*
;** 174	-----------------------    if ( !C$13->fullBuffer ) goto g9;
	.line	31
           LDW     .D2T2   *+B4(20),B0       ; |174| 
           NOP             4
   [!B0]   B       .S1     L4                ; |174| 
           NOP             5
           ; BRANCH OCCURS                   ; |174| 
;** --------------------------------------------------------------------------*
;** 175	-----------------------    if ( TRC_query(49152u) ) goto g9;
	.line	32
           B       .S1     _TRC_query        ; |175| 
           MVKL    .S2     RL6,B3            ; |175| 
           ZERO    .L1     A0                ; |175| 
           MVKH    .S2     RL6,B3            ; |175| 
           SET     .S1     A0,0xe,0xf,A4     ; |175| 
           NOP             1
RL6:       ; CALL OCCURS                     ; |175| 
           MV      .L1     A4,A1             ; |175| 
   [ A1]   B       .S1     L4                ; |175| 
           NOP             5
           ; BRANCH OCCURS                   ; |175| 
;** --------------------------------------------------------------------------*
;** 175	-----------------------    LOG_event(LOG_D_system, 0, (int)"HELP!!! Dropped buffer!!", 8);
           B       .S1     _LOG_event        ; |175| 
           LDW     .D2T1   *+DP(_LOG_D_system),A4 ; |175| 
           MVKL    .S2     RL8,B3            ; |175| 
           MVK     .S2     0x8,B6            ; |175| 
           MVKL    .S1     SL2+0,A6          ; |175| 

           MVKH    .S1     SL2+0,A6          ; |175| 
||         MVKH    .S2     RL8,B3            ; |175| 
||         ZERO    .L2     B4                ; |175| 

RL8:       ; CALL OCCURS                     ; |175| 
;** --------------------------------------------------------------------------*
L4:    
;**	-----------------------g9:
;** 179	-----------------------    C$12 = &chans[0];
;** 179	-----------------------    C$10 = &C$12[chan];
;** 179	-----------------------    C$10->fullBuffer = C$10->currentBuffer;
;** 181	-----------------------    C$10->fullSize = C$10->currentSize;
;** 184	-----------------------    C$11 = &C$12[chan+2u];
;** 184	-----------------------    C$11->fullBuffer = C$11->currentBuffer;
;** 186	-----------------------    C$11->fullSize = C$11->currentSize;
;** 188	-----------------------    if ( C$10->nextBuffer ) goto g11;
;** 190	-----------------------    C$10->currentBuffer = NULL;
;** 192	-----------------------    C$10->currentPtr = 0u;
;** 193	-----------------------    goto g12;
	.line	36
           MVK     .S2     (_chans-$bss),B4  ; |179| 
           ADD     .L2     DP,B4,B5          ; 
           MVK     .S2     44,B6             ; |179| 
           MPYLHU  .M2X    B6,A10,B4         ; |179| 
           MPYU    .M1X    B6,A10,A0         ; |179| 
           SHL     .S2     B4,16,B4          ; |179| 
           ADD     .L1X    A0,B4,A0          ; |179| 
           ADD     .L1X    B5,A0,A0          ; |179| 
           LDW     .D1T1   *+A0(4),A3        ; |179| 
           NOP             4
           STW     .D1T1   A3,*+A0(20)       ; |179| 
	.line	38
           LDW     .D1T1   *+A0(8),A3        ; |181| 
           NOP             4
           STW     .D1T1   A3,*+A0(24)       ; |181| 
	.line	41
           MVK     .S1     44,A4             ; |184| 
           MPYLHU  .M1     A4,A10,A3         ; |184| 
           MPYU    .M1     A4,A10,A4         ; |184| 
           SHL     .S1     A3,16,A3          ; |184| 
           ADD     .L1     A4,A3,A3          ; |184| 
           ADD     .L2X    B5,A3,B4          ; |184| 
           ADDAW   .D2     B4,22,B4          ; |184| 
           LDW     .D2T2   *+B4(4),B5        ; |184| 
           NOP             4
           STW     .D2T2   B5,*+B4(20)       ; |184| 
	.line	43
           LDW     .D2T2   *+B4(8),B5        ; |186| 
           NOP             4
           STW     .D2T2   B5,*+B4(24)       ; |186| 
	.line	45
           LDW     .D1T1   *+A0(28),A1       ; |188| 
           NOP             4
	.line	47
   [!A1]   ZERO    .L1     A3                ; |190| 
   [!A1]   STW     .D1T1   A3,*+A0(4)        ; |190| 
	.line	49
   [!A1]   ZERO    .L1     A3                ; |192| 
   [!A1]   STW     .D1T1   A3,*+A0(12)       ; |192| 
	.line	50
   [!A1]   B       .S1     L5                ; |193| 
           NOP             5
           ; BRANCH OCCURS                   ; |193| 
;** --------------------------------------------------------------------------*
;**	-----------------------g11:

⌨️ 快捷键说明

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