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

📄 dss.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           NOP             5
RL7:       ; CALL OCCURS                     ; |128| 
           CMPEQ   .L1     A4,1,A1           ; 
   [ A1]   B       .S1     L3                ; |128| 
           NOP             5
           ; BRANCH OCCURS                   ; |128| 
;** --------------------------------------------------------------------------*
	.line	24
;----------------------------------------------------------------------
; 129 | SEM_pend(objptr->sync, SYS_FOREVER);                                   
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B5       ; |129| 
           MVKL    .S2     RL8,B3            ; |129| 
           MVK     .S2     0xffffffff,B4     ; |129| 
           MVKH    .S2     RL8,B3            ; |129| 
           B       .S1     _SEM_pend         ; |129| 
           LDW     .D2T1   *B5,A4            ; 
           NOP             4
RL8:       ; CALL OCCURS                     ; |129| 
	.line	25
;----------------------------------------------------------------------
; 130 | post_count++;                                                          
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(24),B4       ; |130| 
           NOP             4
           ADD     .L2     1,B4,B4           ; |130| 
           STW     .D2T2   B4,*+SP(24)       ; |130| 
;** --------------------------------------------------------------------------*
L3:    
	.line	30
;----------------------------------------------------------------------
; 135 | while(post_count > 0) {                                                
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(24),B0       ; |135| 
           NOP             4
   [!B0]   B       .S1     L9                ; |135| 
           NOP             5
           ; BRANCH OCCURS                   ; |135| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: software pipelining disabled
;*----------------------------------------------------------------------------*
L4:    
	.line	31
;----------------------------------------------------------------------
; 136 | SEM_post(objptr->sync);                                                
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |136| 
           MVKL    .S2     RL10,B3           ; |136| 
           MVKH    .S2     RL10,B3           ; |136| 
           NOP             1
           B       .S1     _SEM_post         ; |136| 
           LDW     .D2T1   *B4,A4            ; |136| 
           NOP             4
RL10:      ; CALL OCCURS                     ; |136| 
	.line	32
;----------------------------------------------------------------------
; 137 | post_count--;                                                          
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(24),B4       ; |137| 
           NOP             4
           SUB     .L2     B4,1,B0           ; |137| 
           STW     .D2T2   B0,*+SP(24)       ; |137| 
	.line	33
   [ B0]   B       .S1     L4                ; |138| 
           NOP             5
           ; BRANCH OCCURS                   ; |138| 
;** --------------------------------------------------------------------------*
	.endblock	138
	.line	34
;----------------------------------------------------------------------
; 139 | } else {                                                               
;----------------------------------------------------------------------
           B       .S1     L9                ; |139| 
           NOP             5
           ; BRANCH OCCURS                   ; |139| 
;** --------------------------------------------------------------------------*
L5:    
	.line	35
;----------------------------------------------------------------------
; 140 | if (device->mode == DEV_OUTPUT) {                                      
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(4),B4        ; |140| 
           NOP             4
           LDW     .D2T2   *+B4(20),B4       ; |140| 
           NOP             4
           CMPEQ   .L2     B4,1,B0           ; |140| 
   [!B0]   B       .S1     L6                ; |140| 
           NOP             5
           ; BRANCH OCCURS                   ; |140| 
;** --------------------------------------------------------------------------*
	.line	37
;----------------------------------------------------------------------
; 142 | objptr->drv->stop(drvChan);                                            
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |142| 
           LDW     .D2T1   *+SP(20),A4       ; |142| 
           MVKL    .S2     RL12,B3           ; |142| 
           MVKH    .S2     RL12,B3           ; |142| 
           NOP             1
           LDW     .D2T2   *+B4(12),B4       ; |142| 
           NOP             4
           LDW     .D2T2   *+B4(36),B4       ; |142| 
           NOP             4
           B       .S2     B4                ; |142| 
           NOP             5
RL12:      ; CALL OCCURS                     ; |142| 
	.line	38
;----------------------------------------------------------------------
; 143 | DSS_txFrame[chan]->size = 0;                                           
;----------------------------------------------------------------------
           LDW     .D2T1   *+SP(16),A3       ; |143| 
           MVK     .S1     (_DSS_txFrame-$bss),A0 ; |143| 
           ADD     .L1X    DP,A0,A0          ; |143| 
           ZERO    .L2     B4                ; |143| 
           NOP             1
           LDW     .D1T1   *+A0[A3],A0       ; |143| 
           NOP             4
           STW     .D1T2   B4,*+A0(12)       ; |143| 
	.line	39
;----------------------------------------------------------------------
; 144 | QUE_put(device->fromdevice, DSS_txFrame);                              
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(4),B5        ; |144| 
           MVKL    .S2     RL13,B3           ; |144| 
           MVK     .S2     (_DSS_txFrame-$bss),B4 ; |144| 
           ADD     .L2     DP,B4,B4          ; 
           B       .S1     _QUE_put          ; |144| 
           LDW     .D2T1   *+B5(4),A4        ; 
           MVKH    .S2     RL13,B3           ; |144| 
           NOP             3
RL13:      ; CALL OCCURS                     ; |144| 
	.line	40
;----------------------------------------------------------------------
; 145 | DSS_txFrame[chan] = NULL;                                              
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(16),B5       ; |145| 
           MVK     .S2     (_DSS_txFrame-$bss),B4 ; |145| 
           ZERO    .L1     A0                ; |145| 
           ADD     .L2     DP,B4,B4          ; |145| 
           NOP             1
           STW     .D2T1   A0,*+B4[B5]       ; |145| 
	.line	41
;----------------------------------------------------------------------
; 146 | objptr->drv->setBuf(drvChan, NULL, 0);                                 
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |146| 
           LDW     .D2T1   *+SP(20),A4       ; 
           MVKL    .S2     RL15,B3           ; |146| 
           MVKH    .S2     RL15,B3           ; |146| 
           ZERO    .L1     A6                ; |146| 
           LDW     .D2T2   *+B4(12),B4       ; |146| 
           NOP             4
           LDW     .D2T2   *+B4(24),B5       ; |146| 
           ZERO    .L2     B4                ; |146| 
           NOP             3
           B       .S2     B5                ; |146| 
           NOP             5
RL15:      ; CALL OCCURS                     ; |146| 
	.line	42
;----------------------------------------------------------------------
; 147 | objptr->drv->start(drvChan);                                           
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |147| 
           LDW     .D2T1   *+SP(20),A4       ; |147| 
           MVKL    .S2     RL16,B3           ; |147| 
           MVKH    .S2     RL16,B3           ; |147| 
           NOP             1
           LDW     .D2T2   *+B4(12),B4       ; |147| 
           NOP             4
           LDW     .D2T2   *+B4(32),B4       ; |147| 
           NOP             4
           B       .S2     B4                ; |147| 
           NOP             5
RL16:      ; CALL OCCURS                     ; |147| 
	.line	43
;----------------------------------------------------------------------
; 148 | } else {                                                               
;----------------------------------------------------------------------
           B       .S1     L8                ; |148| 
           NOP             5
           ; BRANCH OCCURS                   ; |148| 
;** --------------------------------------------------------------------------*
L6:    
	.line	44
;----------------------------------------------------------------------
; 149 | objptr->drv->stop(drvChan);                                            
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |149| 
           LDW     .D2T1   *+SP(20),A4       ; |149| 
           MVKL    .S2     RL17,B3           ; |149| 
           MVKH    .S2     RL17,B3           ; |149| 
           NOP             1
           LDW     .D2T2   *+B4(12),B4       ; |149| 
           NOP             4
           LDW     .D2T2   *+B4(36),B4       ; |149| 
           NOP             4
           B       .S2     B4                ; |149| 
           NOP             5
RL17:      ; CALL OCCURS                     ; |149| 
	.line	45
;----------------------------------------------------------------------
; 150 | DSS_rxFrame[chan]->size = 0;                                           
;----------------------------------------------------------------------
           LDW     .D2T1   *+SP(16),A3       ; |150| 
           MVK     .S1     (_DSS_rxFrame-$bss),A0 ; |150| 
           ADD     .L1X    DP,A0,A0          ; |150| 
           ZERO    .L2     B4                ; |150| 
           NOP             1
           LDW     .D1T1   *+A0[A3],A0       ; |150| 
           NOP             4
           STW     .D1T2   B4,*+A0(12)       ; |150| 
	.line	46
;----------------------------------------------------------------------
; 151 | QUE_put(device->fromdevice, DSS_rxFrame);                              
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(4),B4        ; |151| 
           MVK     .S2     (_DSS_rxFrame-$bss),B5 ; |151| 
           MVKL    .S2     RL18,B3           ; |151| 
           MVKH    .S2     RL18,B3           ; |151| 
           B       .S1     _QUE_put          ; |151| 
           LDW     .D2T1   *+B4(4),A4        ; 
           ADD     .L2     DP,B5,B4          ; 
           NOP             3
RL18:      ; CALL OCCURS                     ; |151| 
	.line	47
;----------------------------------------------------------------------
; 152 | DSS_rxFrame[chan] = NULL;                                              
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(16),B5       ; |152| 
           MVK     .S2     (_DSS_rxFrame-$bss),B4 ; |152| 
           ZERO    .L1     A0                ; |152| 
           ADD     .L2     DP,B4,B4          ; |152| 
           NOP             1
           STW     .D2T1   A0,*+B4[B5]       ; |152| 
	.line	48
;----------------------------------------------------------------------
; 153 | objptr->drv->setBuf(drvChan, NULL, 0);                                 
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |153| 
           LDW     .D2T1   *+SP(20),A4       ; 
           MVKL    .S2     RL20,B3           ; |153| 
           ZERO    .L1     A6                ; |153| 
           MVKH    .S2     RL20,B3           ; |153| 
           LDW     .D2T2   *+B4(12),B4       ; |153| 
           NOP             4
           LDW     .D2T2   *+B4(24),B5       ; |153| 
           ZERO    .L2     B4                ; |153| 
           NOP             3
           B       .S2     B5                ; |153| 
           NOP             5
RL20:      ; CALL OCCURS                     ; |153| 
	.line	49
;----------------------------------------------------------------------
; 154 | objptr->drv->start(drvChan);                                           
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |154| 
           LDW     .D2T1   *+SP(20),A4       ; |154| 
           MVKL    .S2     RL21,B3           ; |154| 
           MVKH    .S2     RL21,B3           ; |154| 
           NOP             1
           LDW     .D2T2   *+B4(12),B4       ; |154| 
           NOP             4
           LDW     .D2T2   *+B4(32),B4       ; |154| 
           NOP             4
           B       .S2     B4                ; |154| 
           NOP             5
RL21:      ; CALL OCCURS                     ; |154| 
	.line	52
;----------------------------------------------------------------------
; 157 | while (!QUE_empty(device->todevice)) {                                 

⌨️ 快捷键说明

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