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