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

📄 baset.asm

📁 电力系统中的保护装置全部代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |151| 
        callu     r0                    ; far call to _Delay1us	; |151| 
                                        ; |151| Far Call Occurs
	.line	34
;----------------------------------------------------------------------
; 152 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |152| 
        callu     r0                    ; far call to _Delay1us	; |152| 
                                        ; |152| Far Call Occurs
	.line	36
;----------------------------------------------------------------------
; 154 | DS1302WriteByte(0x8e);            //置DS1302写保护WP位                 
;----------------------------------------------------------------------
        ldp       @CL3,DP
        ldiu      142,r1                ; |154| 
        ldiu      @CL3,r0               ; |154| 
        push      r1                    ; |154| 
        callu     r0                    ; far call to _DS1302WriteByte	; |154| 
                                        ; |154| Far Call Occurs
        subi      1,sp                  ; |154| 
	.line	37
;----------------------------------------------------------------------
; 155 | DS1302WriteByte(0x80);                                                 
;----------------------------------------------------------------------
        ldp       @CL3,DP
        ldiu      128,r1                ; |155| 
        ldiu      @CL3,r0               ; |155| 
        push      r1                    ; |155| 
        callu     r0                    ; far call to _DS1302WriteByte	; |155| 
                                        ; |155| Far Call Occurs
        subi      1,sp                  ; |155| 
	.line	39
;----------------------------------------------------------------------
; 157 | *pSerialPort0XCTRL = 0x222;       //DSP口线设置为输出方式,值为0        
;----------------------------------------------------------------------
        ldiu      546,r0                ; |157| 
        sti       r0,*ar1               ; |157| 
	.line	41
;----------------------------------------------------------------------
; 159 | uDS1302_use = 0;                                                       
;----------------------------------------------------------------------
        ldp       @CL5,DP
        ldiu      @CL5,ar0              ; |159| 
        ldiu      0,r0                  ; |159| 
        sti       r0,*ar0               ; |159| 
	.line	42
                                        ; Begin Epilog Code
        ldiu      *-fp(1),r1
        ldiu      *fp,fp
                                        ; Unallocate the Frame
        subi      2,sp
        bu        r1
;*      Branch Occurs to r1 
	.endfunc	160,000000000h,0


	.sect	 ".text"

	.global	_Time_Initialize
	.sym	_Time_Initialize,_Time_Initialize,32,2,0
	.func	165
;******************************************************************************
;* FUNCTION NAME: _Time_Initialize                                            *
;*                                                                            *
;*   Architecture       : TMS320C32                                           *
;*   Calling Convention : Stack Parameter Convention                          *
;*   Function Uses Regs : r0,r1,r2,fp,ar4,ar5,sp,st                           *
;*   Regs Saved         : ar4,ar5                                             *
;*   Stack Frame        : Full (w/ debug)                                     *
;*   Total Frame Size   : 2 Call + 0 Parm + 0 Auto + 2 SOE = 4 words          *
;******************************************************************************
_Time_Initialize:
;* ar4   assigned to _p
	.sym	_p,12,24,4,32,.fake2
;* ar5   assigned to _pp
	.sym	_pp,13,30,4,32
;* r0    assigned to _i
	.sym	_i,0,14,4,32
	.line	1
;----------------------------------------------------------------------
; 165 | VOID    Time_Initialize(VOID)                                          
;----------------------------------------------------------------------
        push      fp
        ldiu      sp,fp
        push      ar4
        push      ar5
	.line	3
;----------------------------------------------------------------------
; 167 | register Clock     *p = &DS1302Time;                                   
;----------------------------------------------------------------------
        ldp       @CL6,DP
        ldiu      @CL6,ar4              ; |167| 
	.line	4
;----------------------------------------------------------------------
; 168 | register UNSIGNED  *pp = SoftCLK;                                      
; 169 | register UNSIGNED  i;                                                  
;----------------------------------------------------------------------
        ldp       @CL7,DP
        ldiu      @CL7,ar5              ; |168| 
	.line	7
;----------------------------------------------------------------------
; 171 | DS1302BurstRead(0xbf, (UNSIGNED *)p, sizeof(Clock));  //读时间         
;----------------------------------------------------------------------
        ldiu      8,r0                  ; |171| 
        ldiu      191,r1                ; |171| 
        push      r0                    ; |171| 
        ldp       @CL8,DP
        push      ar4                   ; |171| 
        ldiu      @CL8,r0               ; |171| 
        push      r1                    ; |171| 
        callu     r0                    ; far call to _DS1302BurstRead	; |171| 
                                        ; |171| Far Call Occurs
        subi      3,sp                  ; |171| 
	.line	9
;----------------------------------------------------------------------
; 173 | if((p->sec & 0x80) || (p->hour & 0x80))                                
;----------------------------------------------------------------------
        ldiu      128,r0                ; |173| 
        tstb3     *ar4,r0               ; |173| 
        bne       L33                   ; |173| 
;*      Branch Occurs to L33            ; |173| 
        tstb      *+ar4(2),r0           ; |173| 
        beq       L34                   ; |173| 
;*      Branch Occurs to L34            ; |173| 
L33:        
	.line	11
;----------------------------------------------------------------------
; 175 | p->sec &= 0x7f;                                                        
;----------------------------------------------------------------------
        ldiu      127,r0                ; |175| 
        and3      r0,*ar4,r0            ; |175| 
        sti       r0,*ar4               ; |175| 
	.line	12
;----------------------------------------------------------------------
; 176 | p->hour &= 0x7f;                                                       
;----------------------------------------------------------------------
        ldiu      127,r0                ; |176| 
        and       *+ar4(2),r0           ; |176| 
        sti       r0,*+ar4(2)           ; |176| 
	.line	13
;----------------------------------------------------------------------
; 177 | DS1302BurstWrite(0xbe, (UNSIGNED *)p, sizeof(Clock));                  
; 180 | //将时分秒合成一字节,用毫秒数表示                                      
;----------------------------------------------------------------------
        ldp       @CL9,DP
        ldiu      8,r2                  ; |177| 
        ldiu      @CL9,r1               ; |177| 
        push      r2                    ; |177| 
        ldiu      190,r0                ; |177| 
        push      ar4                   ; |177| 
        push      r0                    ; |177| 
        callu     r1                    ; far call to _DS1302BurstWrite	; |177| 
                                        ; |177| Far Call Occurs
        subi      3,sp                  ; |177| 
L34:        
	.line	17
;----------------------------------------------------------------------
; 181 | *pp++ = (p->year >> 4) * 10 + (p->year & 0x0f);                        
;----------------------------------------------------------------------
        ldiu      *+ar4(6),r0           ; |181| 
        ldiu      15,r1                 ; |181| 
        lsh       -4,r0                 ; |181| 
        and       *+ar4(6),r1           ; |181| 
        mpyi      10,r0                 ; |181| 
        addi3     r1,r0,r0              ; |181| Unsigned
        sti       r0,*ar5++(1)          ; |181| 
	.line	18
;----------------------------------------------------------------------
; 182 | *pp++ = (p->month >> 4)* 10 + (p->month & 0x0f);                       
;----------------------------------------------------------------------
        ldiu      15,r1                 ; |182| 
        ldiu      *+ar4(4),r0           ; |182| 
        and       *+ar4(4),r1           ; |182| 
        lsh       -4,r0                 ; |182| 
        mpyi      10,r0                 ; |182| 
        addi3     r1,r0,r0              ; |182| Unsigned
        sti       r0,*ar5++(1)          ; |182| 
	.line	19
;----------------------------------------------------------------------
; 183 | *pp++ = (p->date >> 4) * 10 + (p->date & 0x0f);                        
;----------------------------------------------------------------------
        ldiu      15,r1                 ; |183| 
        ldiu      *+ar4(3),r0           ; |183| 
        lsh       -4,r0                 ; |183| 
        mpyi      10,r0                 ; |183| 
        and       *+ar4(3),r1           ; |183| 
        addi3     r1,r0,r0              ; |183| Unsigned
        sti       r0,*ar5++(1)          ; |183| 
	.line	20
;----------------------------------------------------------------------
; 184 | *pp++ = (p->hour >> 4) * 10 + (p->hour & 0x0f);                        
;----------------------------------------------------------------------
        ldiu      15,r1                 ; |184| 
        and       *+ar4(2),r1           ; |184| 
        ldiu      *+ar4(2),r0           ; |184| 
        lsh       -4,r0                 ; |184| 
        mpyi      10,r0                 ; |184| 
        addi3     r1,r0,r0              ; |184| Unsigned
        sti       r0,*ar5++(1)          ; |184| 
	.line	21
;----------------------------------------------------------------------
; 185 | *pp++ = (p->min >> 4) * 10 + (p->min & 0x0f);                          
;----------------------------------------------------------------------
        ldiu      -4,r0                 ; |185| 
        ldiu      15,r1                 ; |185| 
        lsh3      r0,*+ar4,r0           ; |185| 
        mpyi      10,r0                 ; |185| 
        and       *+ar4(1),r1           ; |185| 
        addi3     r1,r0,r0              ; |185| Unsigned
        sti       r0,*ar5++(1)          ; |185| 
	.line	22
;----------------------------------------------------------------------
; 186 | *pp++ = 1000 * ((p->sec >> 4) * 10 + (p->sec & 0x0f));                 
;----------------------------------------------------------------------
        ldiu      -4,r0                 ; |186| 
        ldiu      15,r1                 ; |186| 
        lsh3      r0,*ar4,r0            ; |186| 
        mpyi      10,r0                 ; |186| 
        and3      r1,*ar4,r1            ; |186| 
        addi3     r1,r0,r0              ; |186| Unsigned
        mpyi      1000,r0               ; |186| 
        sti       r0,*ar5++(1)          ; |186| 
	.line	24
                                        ; 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	188,000003000h,0


	.sect	 ".text"

	.global	_READ_DEC_TIME
	.sym	_READ_DEC_TIME,_READ_DEC_TIME,32,2,0
	.func	193
;******************************************************************************
;* FUNCTION NAME: _READ_DEC_TIME                                              *
;*                                                                            *
;*   Architecture       : TMS320C32                                           *
;*   Calling Convention : Stack Parameter Convention                          *
;*   Function Uses Regs : r0,r1,r2,ar0,ar1,ar2,st                             *
;*   Regs Saved         :                                                     *
;*   Stack Frame        : Full (w/ debug)                                     *
;*   Total Frame Size   : 2 Call + 1 Parm + 0 Auto + 0 SOE = 3 words          *
;******************************************************************************
_READ_DEC_TIME:
	.sym	_pDST,-2,30,9,32
;* r0    assigned to _i
	.sym	_i,0,14,4,32
;* r2    assigned to _j
	.sym	_j,2,14,4,32
;* ar1   assigned to _p
	.sym	_p,9,30,4,32
;* ar0   assigned to _pp
	.sym	_pp,8,30,4,32
	.line	1
;----------------------------------------------------------------------
; 193 | VOID    READ_DEC_TIME(UNSIGNED *pDST)                                  
;----------------------------------------------------------------------
        push      fp
        ldiu      sp,fp
	.line	2
;----------------------------------------------------------------------
; 195 | register UNSIGNED  i,j;                                                
; 196 | register UNSIGNED  *p;                                                 
; 197 | register UNSIGNED  *pp;                                                
; 199 | do                                                                     
;----------------------------------------------------------------------
L38:        
	.line	9
;----------------------------------------------------------------------
; 201 | p = pDST;                                                              
;----------------------------------------------------------------------
        ldiu      *-fp(2),ar1           ; |201| 
	.line	10
;----------------------------------------------------------------------
; 202 | pp = SoftCLK;                                                          
;----------------------------------------------------------------------
    

⌨️ 快捷键说明

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