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

📄 dss.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           LDW     .D2T2   *+SP(4),B4        ; |123| 
           NOP             4
           LDW     .D2T2   *B4,B5            ; |123| 
           LDW     .D2T2   *B4,B4            ; |123| 
           NOP             3
           LDW     .D2T2   *B5,B5            ; |123| 
           NOP             4
           CMPEQ   .L2     B5,B4,B0          ; |123| 
   [!B0]   B       .S1     L6                ; |123| 
           NOP             5
           ; BRANCH OCCURS                   ; |123| 
;** --------------------------------------------------------------------------*
	.line	16
;----------------------------------------------------------------------
; 126 | if (dss_isr_get_txCnt_n(chan) != 0) {                                  
;----------------------------------------------------------------------
           B       .S1     _dss_isr_get_txCnt_n ; |126| 
           LDW     .D2T1   *+SP(16),A4       ; |126| 
           MVKL    .S2     RL8,B3            ; |126| 
           MVKH    .S2     RL8,B3            ; |126| 
           NOP             2
RL8:       ; CALL OCCURS                     ; |126| 
           MV      .L1     A4,A1             ; |126| 
   [!A1]   B       .S1     L8                ; |126| 
           NOP             5
           ; BRANCH OCCURS                   ; |126| 
;** --------------------------------------------------------------------------*
	.line	17
;----------------------------------------------------------------------
; 127 | SEM_pend(objptr->sync, SYS_FOREVER);                                   
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B5       ; |127| 
           MVKL    .S2     RL10,B3           ; |127| 
           MVK     .S2     0xffffffff,B4     ; |127| 
           MVKH    .S2     RL10,B3           ; |127| 
           B       .S1     _SEM_pend         ; |127| 
           LDW     .D2T1   *B5,A4            ; 
           NOP             4
RL10:      ; CALL OCCURS                     ; |127| 
	.line	18
;----------------------------------------------------------------------
; 128 | post_count++;                                                          
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(20),B4       ; |128| 
           NOP             4
           ADD     .L2     1,B4,B4           ; |128| 
           STW     .D2T2   B4,*+SP(20)       ; |128| 
;** --------------------------------------------------------------------------*
L8:    
	.line	23
;----------------------------------------------------------------------
; 133 | while(post_count > 0) {                                                
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(20),B0       ; |133| 
           NOP             4
   [!B0]   B       .S1     L14               ; |133| 
           NOP             5
           ; BRANCH OCCURS                   ; |133| 
;*----------------------------------------------------------------------------*
;*   SOFTWARE PIPELINE INFORMATION
;*      Disqualified loop: software pipelining disabled
;*----------------------------------------------------------------------------*
L9:    
	.line	24
;----------------------------------------------------------------------
; 134 | SEM_post(objptr->sync);                                                
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |134| 
           MVKL    .S2     RL12,B3           ; |134| 
           MVKH    .S2     RL12,B3           ; |134| 
           NOP             1
           B       .S1     _SEM_post         ; |134| 
           LDW     .D2T1   *B4,A4            ; |134| 
           NOP             4
RL12:      ; CALL OCCURS                     ; |134| 
	.line	25
;----------------------------------------------------------------------
; 135 | post_count--;                                                          
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(20),B4       ; |135| 
           NOP             4
           SUB     .L2     B4,1,B0           ; |135| 
           STW     .D2T2   B0,*+SP(20)       ; |135| 
	.line	26
   [ B0]   B       .S1     L9                ; |136| 
           NOP             5
           ; BRANCH OCCURS                   ; |136| 
;** --------------------------------------------------------------------------*
	.endblock	136
	.line	27
;----------------------------------------------------------------------
; 137 | } else {                                                               
;----------------------------------------------------------------------
           B       .S1     L14               ; |137| 
           NOP             5
           ; BRANCH OCCURS                   ; |137| 
;** --------------------------------------------------------------------------*
L10:    
	.line	28
;----------------------------------------------------------------------
; 138 | if (device->mode == DEV_OUTPUT) {                                      
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(4),B4        ; |138| 
           NOP             4
           LDW     .D2T2   *+B4(20),B4       ; |138| 
           NOP             4
           CMPEQ   .L2     B4,1,B0           ; |138| 
   [!B0]   B       .S1     L11               ; |138| 
           NOP             5
           ; BRANCH OCCURS                   ; |138| 
;** --------------------------------------------------------------------------*
	.line	30
;----------------------------------------------------------------------
; 140 | dss_isr_stop();                                                        
;----------------------------------------------------------------------
           B       .S1     _dss_isr_stop     ; |140| 
           MVKL    .S2     RL14,B3           ; |140| 
           MVKH    .S2     RL14,B3           ; |140| 
           NOP             3
RL14:      ; CALL OCCURS                     ; |140| 
	.line	31
;----------------------------------------------------------------------
; 141 | DSS_txFrame[chan]->size = 0;                                           
;----------------------------------------------------------------------
           LDW     .D2T1   *+SP(16),A3       ; |141| 
           MVK     .S1     (_DSS_txFrame-$bss),A0 ; |141| 
           ADD     .L1X    DP,A0,A0          ; |141| 
           ZERO    .L2     B4                ; |141| 
           NOP             1
           LDW     .D1T1   *+A0[A3],A0       ; |141| 
           NOP             4
           STW     .D1T2   B4,*+A0(12)       ; |141| 
	.line	32
;----------------------------------------------------------------------
; 142 | QUE_put(device->fromdevice, DSS_txFrame);                              
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(4),B5        ; |142| 
           MVKL    .S2     RL16,B3           ; |142| 
           MVK     .S2     (_DSS_txFrame-$bss),B4 ; |142| 
           ADD     .L2     DP,B4,B4          ; 
           B       .S1     _QUE_put          ; |142| 
           LDW     .D2T1   *+B5(4),A4        ; 
           MVKH    .S2     RL16,B3           ; |142| 
           NOP             3
RL16:      ; CALL OCCURS                     ; |142| 
	.line	33
;----------------------------------------------------------------------
; 143 | DSS_txFrame[chan] = NULL;                                              
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(16),B6       ; |143| 
           MVK     .S2     (_DSS_txFrame-$bss),B4 ; |143| 
           ADD     .L2     DP,B4,B4          ; |143| 
           ZERO    .S2     B5                ; |143| 
           NOP             1
           STW     .D2T2   B5,*+B4[B6]       ; |143| 
	.line	34
;----------------------------------------------------------------------
; 144 | dss_isr_set_txBuf_n(NULL, 0, chan);                                    
;----------------------------------------------------------------------
           B       .S1     _dss_isr_set_txBuf_n ; |144| 
           LDW     .D2T1   *+SP(16),A6       ; |144| 
           MVKL    .S2     RL18,B3           ; |144| 
           ZERO    .L2     B4                ; |144| 
           ZERO    .L1     A4                ; |144| 
           MVKH    .S2     RL18,B3           ; |144| 
RL18:      ; CALL OCCURS                     ; |144| 
	.line	35
;----------------------------------------------------------------------
; 145 | dss_isr_start();                                                       
;----------------------------------------------------------------------
           B       .S1     _dss_isr_start    ; |145| 
           MVKL    .S2     RL20,B3           ; |145| 
           MVKH    .S2     RL20,B3           ; |145| 
           NOP             3
RL20:      ; CALL OCCURS                     ; |145| 
	.line	36
;----------------------------------------------------------------------
; 146 | } else {                                                               
;----------------------------------------------------------------------
           B       .S1     L13               ; |146| 
           NOP             5
           ; BRANCH OCCURS                   ; |146| 
;** --------------------------------------------------------------------------*
L11:    
	.line	37
;----------------------------------------------------------------------
; 147 | dss_isr_stop();                                                        
;----------------------------------------------------------------------
           B       .S1     _dss_isr_stop     ; |147| 
           MVKL    .S2     RL22,B3           ; |147| 
           MVKH    .S2     RL22,B3           ; |147| 
           NOP             3
RL22:      ; CALL OCCURS                     ; |147| 
	.line	38
;----------------------------------------------------------------------
; 148 | DSS_rxFrame[chan]->size = 0;                                           
;----------------------------------------------------------------------
           LDW     .D2T1   *+SP(16),A3       ; |148| 
           MVK     .S1     (_DSS_rxFrame-$bss),A0 ; |148| 
           ADD     .L1X    DP,A0,A0          ; |148| 
           ZERO    .L2     B4                ; |148| 
           NOP             1
           LDW     .D1T1   *+A0[A3],A0       ; |148| 
           NOP             4
           STW     .D1T2   B4,*+A0(12)       ; |148| 
	.line	39
;----------------------------------------------------------------------
; 149 | QUE_put(device->fromdevice, DSS_rxFrame);                              
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(4),B5        ; |149| 
           MVKL    .S2     RL24,B3           ; |149| 
           MVK     .S2     (_DSS_rxFrame-$bss),B4 ; |149| 
           ADD     .L2     DP,B4,B4          ; 
           B       .S1     _QUE_put          ; |149| 
           LDW     .D2T1   *+B5(4),A4        ; 
           MVKH    .S2     RL24,B3           ; |149| 
           NOP             3
RL24:      ; CALL OCCURS                     ; |149| 
	.line	40
;----------------------------------------------------------------------
; 150 | DSS_rxFrame[chan] = NULL;                                              
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(16),B6       ; |150| 
           MVK     .S2     (_DSS_rxFrame-$bss),B4 ; |150| 
           ADD     .L2     DP,B4,B4          ; |150| 
           ZERO    .S2     B5                ; |150| 
           NOP             1
           STW     .D2T2   B5,*+B4[B6]       ; |150| 
	.line	41
;----------------------------------------------------------------------
; 151 | dss_isr_set_rxBuf_n(NULL, 0, chan);                                    
;----------------------------------------------------------------------
           B       .S1     _dss_isr_set_rxBuf_n ; |151| 
           LDW     .D2T1   *+SP(16),A6       ; |151| 
           MVKL    .S2     RL26,B3           ; |151| 
           ZERO    .L2     B4                ; |151| 
           ZERO    .L1     A4                ; |151| 
           MVKH    .S2     RL26,B3           ; |151| 
RL26:      ; CALL OCCURS                     ; |151| 
	.line	42
;----------------------------------------------------------------------
; 152 | dss_isr_start();                                                       
;----------------------------------------------------------------------
           B       .S1     _dss_isr_start    ; |152| 
           MVKL    .S2     RL28,B3           ; |152| 
           MVKH    .S2     RL28,B3           ; |152| 
           NOP             3
RL28:      ; CALL OCCURS                     ; |152| 
	.line	45
;----------------------------------------------------------------------
; 155 | while (!QUE_empty(device->todevice)) {                                 
;----------------------------------------------------------------------
           B       .S1     L13               ; |155| 
           NOP             5
           ; BRANCH OCCURS                   ; |155| 
;** --------------------------------------------------------------------------*
L12:    
	.line	46
;----------------------------------------------------------------------
; 156 | QUE_put(device->fromdevice, QUE_get(device->todevice));                
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(4),B4        ; |156| 
           MVKL    .S2     RL32,B3           ; |156| 
           MVKH    .S2     RL32,B3           ; |156| 
           NOP             1
           B       .S1     _QUE_get          ; |156| 

⌨️ 快捷键说明

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