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

📄 basedo.asm

📁 电力系统中的保护装置全部代码
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r1               ; |102| 
        push      r0                    ; |102| 
        callu     r1                    ; far call to _TCSE_Change_Preemption	; |102| 
                                        ; |102| Far Call Occurs
        subi      1,sp                  ; |102| 
	.line	15
                                        ; Begin Epilog Code
        ldiu      *-fp(1),r1
        ldiu      *fp,fp
                                        ; Restore SOE Registers
        pop       ar5
        pop       ar4
                                        ; Unallocate the Frame
        subi      2,sp
        bu        r1
;*      Branch Occurs to r1 
	.endfunc	103,000003000h,0


	.sect	 ".text"

	.global	_DO_Logic
	.sym	_DO_Logic,_DO_Logic,32,2,0
	.func	109
;******************************************************************************
;* FUNCTION NAME: _DO_Logic                                                   *
;*                                                                            *
;*   Architecture       : TMS320C32                                           *
;*   Calling Convention : Stack Parameter Convention                          *
;*   Function Uses Regs : r0,r1,r2,ar0,ar1,fp,sp,st                           *
;*   Regs Saved         :                                                     *
;*   Stack Frame        : Full (w/ debug)                                     *
;*   Total Frame Size   : 2 Call + 0 Parm + 0 Auto + 0 SOE = 2 words          *
;******************************************************************************
_DO_Logic:
;* ar0   assigned to _protect
	.sym	_protect,8,24,4,32,_PROTECT_STRUCT
;* ar0   assigned to _p
	.sym	_p,8,24,4,32,.fake5
;* ar0   assigned to _check
	.sym	_check,8,24,4,32,_CHECK_STRUCT
;* r0    assigned to _i
	.sym	_i,0,14,4,32
;* r0    assigned to _j
	.sym	_j,0,14,4,32
;* r1    assigned to _k
	.sym	_k,1,14,4,32
	.line	1
;----------------------------------------------------------------------
; 109 | VOID DO_Logic()                                                        
; 111 | register PROTECT   *protect;                                           
; 112 | register DOSTRU    *p;                                                 
; 113 | register CHECK     *check;                                             
; 114 | register UNSIGNED  i, j, k;                                            
;----------------------------------------------------------------------
        push      fp
        ldiu      sp,fp
	.line	8
;----------------------------------------------------------------------
; 116 | *pDOPORT = Switchout_buf;                                              
;----------------------------------------------------------------------
        ldp       @CL6,DP
        ldiu      @CL6,ar1              ; |116| 
        ldp       @CL5,DP
        ldiu      @CL5,ar0              ; |116| 
        ldiu      *ar1,ar1              ; |116| 
        ldiu      *ar0,r0               ; |116| 
        sti       r0,*ar1               ; |116| 
	.line	10
;----------------------------------------------------------------------
; 118 | protect = PRO_Created_Protect_List;                   //保护列表指针   
;----------------------------------------------------------------------
        ldp       @CL8,DP
        ldiu      @CL8,ar0              ; |118| 
        ldiu      *ar0,ar0              ; |118| 
	.line	11
;----------------------------------------------------------------------
; 119 | for (j = 0, k = 0; j < PRO_Total_Protect; j++, protect = protect->pro_l
;     | ink_next)                                                              
;----------------------------------------------------------------------
        ldiu      0,r0                  ; |119| 
        ldiu      0,r1                  ; |119| 
        ldp       @CL9,DP
        ldiu      @CL9,ar1              ; |119| 
        cmpi3     *ar1,r0               ; |119| 
        bhs       L21                   ; |119| 
;*      Branch Occurs to L21            ; |119| 
L17:        
	.line	13
;----------------------------------------------------------------------
; 121 | if (protect->pro_startup_flag && protect->pro_trip)                    
;----------------------------------------------------------------------
        ldiu      *+ar0(77),r2          ; |121| 
        cmpi      0,r2                  ; |121| 
        beq       L20                   ; |121| 
;*      Branch Occurs to L20            ; |121| 
        ldiu      *+ar0(70),r2          ; |121| 
        cmpi      0,r2                  ; |121| 
        beq       L20                   ; |121| 
;*      Branch Occurs to L20            ; |121| 
	.line	15
;----------------------------------------------------------------------
; 123 | k = 1;                                                                 
;----------------------------------------------------------------------
        ldiu      1,r1                  ; |123| 
	.line	16
;----------------------------------------------------------------------
; 124 | break;                                                                 
;----------------------------------------------------------------------
        bu        L21                   ; |124| 
;*      Branch Occurs to L21            ; |124| 
L20:        
	.line	11
        addi      1,r0                  ; |119| Unsigned
        ldiu      *ar0,ar0              ; |119| 
        ldp       @CL9,DP
        ldiu      @CL9,ar1              ; |119| 
        cmpi3     *ar1,r0               ; |119| 
        blo       L17                   ; |119| 
;*      Branch Occurs to L17            ; |119| 
L21:        
	.line	20
;----------------------------------------------------------------------
; 128 | p = &DOChn[QDJ];                                                       
;----------------------------------------------------------------------
        ldp       @CL4,DP
        ldiu      @CL4,ar0              ; |128| 
	.line	21
;----------------------------------------------------------------------
; 129 | if(p->state)                                                           
;----------------------------------------------------------------------
        ldiu      *+ar0(1),r0           ; |129| 
        cmpi      0,r0                  ; |129| 
        beq       L26                   ; |129| 
;*      Branch Occurs to L26            ; |129| 
	.line	23
;----------------------------------------------------------------------
; 131 | if (!k && (TMD_System_Clock - p->clock >= 1000) && (Switchout_buf & 0x1
;     | ffe) == 0x1ffe)   //启动继电器的返回                                   
;----------------------------------------------------------------------
        cmpi      0,r1                  ; |131| 
        bne       L28                   ; |131| 
;*      Branch Occurs to L28            ; |131| 
        ldp       @CL7,DP
        ldiu      @CL7,ar1              ; |131| 
        subi3     *ar0,*ar1,r0          ; |131| Unsigned
        cmpi      1000,r0               ; |131| 
        blo       L28                   ; |131| 
;*      Branch Occurs to L28            ; |131| 
        ldp       @CL5,DP
        ldiu      @CL5,ar0              ; |131| 
        ldiu      8190,r0               ; |131| 
        and3      r0,*ar0,r0            ; |131| 
        cmpi      8190,r0               ; |131| 
        bne       L28                   ; |131| 
;*      Branch Occurs to L28            ; |131| 
	.line	24
;----------------------------------------------------------------------
; 132 | QdjBack();                                                             
; 134 | else                                                                   
;----------------------------------------------------------------------
        ldp       @CL10,DP
        ldiu      0,r1                  ; |132| 
        ldiu      @CL10,r0              ; |132| 
        push      r1                    ; |132| 
        callu     r0                    ; far call to _Switch_Output_off	; |132| 
                                        ; |132| Far Call Occurs
        subi      1,sp                  ; |132| 
        bu        L28                   ; |108| 
;*      Branch Occurs to L28            ; |108| 
L26:        
	.line	28
;----------------------------------------------------------------------
; 136 | if(k) Qdj();                                                           
;----------------------------------------------------------------------
        cmpi      0,r1                  ; |136| 
        beq       L28                   ; |136| 
;*      Branch Occurs to L28            ; |136| 
        ldp       @CL11,DP
        ldiu      0,r0                  ; |136| 
        ldiu      @CL11,r1              ; |136| 
        push      r0                    ; |136| 
        callu     r1                    ; far call to _Switch_Output_on	; |136| 
                                        ; |136| Far Call Occurs
        subi      1,sp                  ; |136| 
L28:        
	.line	32
;----------------------------------------------------------------------
; 140 | protect = PRO_Created_Protect_List;                   //保护列表指针   
;----------------------------------------------------------------------
        ldp       @CL8,DP
        ldiu      @CL8,ar0              ; |140| 
        ldiu      *ar0,ar0              ; |140| 
	.line	33
;----------------------------------------------------------------------
; 141 | for (j = 0, k = 0; j < PRO_Total_Protect; j++, protect = protect->pro_l
;     | ink_next)                                                              
;----------------------------------------------------------------------
        ldiu      0,r0                  ; |141| 
        ldiu      0,r1                  ; |141| 
        ldp       @CL9,DP
        ldiu      @CL9,ar1              ; |141| 
        cmpi3     *ar1,r0               ; |141| 
        bhs       L33                   ; |141| 
;*      Branch Occurs to L33            ; |141| 
L29:        
	.line	35
;----------------------------------------------------------------------
; 143 | if (protect->pro_pickup_flag && protect->pro_trip)                     
;----------------------------------------------------------------------
        ldiu      *+ar0(78),r2          ; |143| 
        cmpi      0,r2                  ; |143| 
        beq       L32                   ; |143| 
;*      Branch Occurs to L32            ; |143| 
        ldiu      *+ar0(70),r2          ; |143| 
        cmpi      0,r2                  ; |143| 
        beq       L32                   ; |143| 
;*      Branch Occurs to L32            ; |143| 
	.line	37
;----------------------------------------------------------------------
; 145 | k = 1;                                                                 
;----------------------------------------------------------------------
        ldiu      1,r1                  ; |145| 
	.line	38
;----------------------------------------------------------------------
; 146 | break;                                                                 
;----------------------------------------------------------------------
        bu        L33                   ; |146| 
;*      Branch Occurs to L33            ; |146| 
L32:        
	.line	33
        addi      1,r0                  ; |141| Unsigned
        ldiu      *ar0,ar0              ; |141| 
        ldp       @CL9,DP
        ldiu      @CL9,ar1              ; |141| 
        cmpi3     *ar1,r0               ; |141| 
        blo       L29                   ; |141| 
;*      Branch Occurs to L29            ; |141| 
L33:        
	.line	41
;----------------------------------------------------------------------
; 149 | p = &DOChn[TZJ];                                                       
;----------------------------------------------------------------------
        ldp       @CL12,DP
        ldiu      @CL12,ar0             ; |149| 
	.line	42
;----------------------------------------------------------------------
; 150 | if (p->state)                                                          
;----------------------------------------------------------------------
        ldiu      *+ar0(1),r0           ; |150| 
        cmpi      0,r0                  ; |150| 
        beq       L37                   ; |150| 
;*      Branch Occurs to L37            ; |150| 
	.line	44
;----------------------------------------------------------------------
; 152 | if(!k && TMD_System_Clock - p->clock >= 200)  //跳闸继电器的返回       
;----------------------------------------------------------------------
        cmpi      0,r1                  ; |152| 
        bne       L39                   ; |152| 
;*      Branch Occurs to L39            ; |152| 
        ldp       @CL7,DP
        ldiu      @CL7,ar1              ; |152| 
        subi3     *ar0,*ar1,r0          ; |152| Unsigned
        cmpi      200,r0                ; |152| 
        blo       L39                   ; |152| 
;*      Branch Occurs to L39            ; |152| 
	.line	45
;----------------------------------------------------------------------
; 153 | TzjBack();                                                             
; 155 | else                                                                   
;----------------------------------------------------------------------
        ldp       @CL10,DP
        ldiu      2,r0                  ; |153| 
        ldiu      @CL10,r1              ; |153| 
        push      r0                    ; |153| 
        callu     r1                    ; far call to _Switch_Output_off	; |153| 
                                        ; |153| Far Call Occurs
        subi      1,sp                  ; |153| 
        bu        L39                   ; |108| 
;*      Branch Occurs to L39            ; |108| 
L37:        
	.line	49
;----------------------------------------------------------------------
; 157 | if(k) Tzj();                                                           
;----------------------------------------------------------------------
        cmpi      0,r1                  ; |157| 
        beq       L39                   ; |157| 
;*      Branch Occurs to L39            ; |157| 
        ldp       @CL11,DP
        ldiu      2,r0                  ; |157| 
        ldiu      @CL11,r1              ; |157| 
        push      r0                    ; |157| 
        callu     r1                    ; far call to _Switch_Output_on	; |157| 
                                        ; |157| Far Call Occurs
        subi      1,sp                  ; |157| 
L39:        
	.line	52
;----------------------------------------------------------------------
; 160 | p = &DOChn[HZJ];                                                       
;----------------------------------------------------------------------
        ldp       @CL13,DP
        ldiu      @CL13,ar0             ; |160| 
	.line	53
;----------------------------------------------------------------------
; 161 | if (p->state && TMD_System_Clock - p->clock >= 200)   //重合闸继电器的

⌨️ 快捷键说明

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