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

📄 baset.asm

📁 电力系统中的保护装置全部代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	.line	11
;----------------------------------------------------------------------
; 104 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |104| 
        callu     r0                    ; far call to _Delay1us	; |104| 
                                        ; |104| Far Call Occurs
	.line	13
;----------------------------------------------------------------------
; 106 | DS1302WriteByte(SourceCode);      //burst方式读DS1302                  
;----------------------------------------------------------------------
        ldp       @CL3,DP
        ldiu      *-fp(2),r0            ; |106| 
        ldiu      @CL3,r1               ; |106| 
        push      r0                    ; |106| 
        callu     r1                    ; far call to _DS1302WriteByte	; |106| 
                                        ; |106| Far Call Occurs
        subi      1,sp                  ; |106| 
	.line	15
;----------------------------------------------------------------------
; 108 | DataInMode();                     //DSP口线设置为输入方式              
;----------------------------------------------------------------------
        ldiu      4063,r0               ; |108| 
        and3      r0,*ar1,r0            ; |108| 
        sti       r0,*ar1               ; |108| 
	.line	17
;----------------------------------------------------------------------
; 110 | for(i = 0; i < Length; i ++)                                           
;----------------------------------------------------------------------
        ldiu      0,rs                  ; |110| 
        cmpi      *-fp(4),rs            ; |110| 
        bhs       L21                   ; |110| 
;*      Branch Occurs to L21            ; |110| 
L20:        
	.line	18
;----------------------------------------------------------------------
; 111 | *pDestination++ = DS1302ReadByte();                                    
;----------------------------------------------------------------------
        ldp       @CL4,DP
        ldiu      @CL4,r0               ; |111| 
        callu     r0                    ; far call to _DS1302ReadByte	; |111| 
                                        ; |111| Far Call Occurs
        ldiu      1,r1                  ; |111| 
        ldiu      *-fp(3),ar0           ; |111| 
        addi      ar0,r1                ; |111| 
        sti       r1,*-fp(3)            ; |111| 
        sti       r0,*ar0               ; |111| 
	.line	17
        addi      1,rs                  ; |110| Unsigned
        cmpi      *-fp(4),rs            ; |110| 
        blo       L20                   ; |110| 
;*      Branch Occurs to L20            ; |110| 
L21:        
	.line	20
;----------------------------------------------------------------------
; 113 | *pSerialPort0XCTRL = 0x222;       //DSP口线设置为输出方式,值为0        
;----------------------------------------------------------------------
        ldiu      546,r0                ; |113| 
        sti       r0,*ar1               ; |113| 
	.line	21
                                        ; Begin Epilog Code
        ldiu      *-fp(1),r1
        ldiu      *fp,fp
                                        ; Unallocate the Frame
        subi      2,sp
        bu        r1
;*      Branch Occurs to r1 
	.endfunc	114,000000000h,0


	.sect	 ".text"

	.global	_DS1302BurstWrite
	.sym	_DS1302BurstWrite,_DS1302BurstWrite,32,2,0
	.func	119
;******************************************************************************
;* FUNCTION NAME: _DS1302BurstWrite                                           *
;*                                                                            *
;*   Architecture       : TMS320C32                                           *
;*   Calling Convention : Stack Parameter Convention                          *
;*   Function Uses Regs : r0,r1,r3,ar0,ar1,ar2,fp,sp,st                       *
;*   Regs Saved         :                                                     *
;*   Stack Frame        : Full (w/ debug)                                     *
;*   Total Frame Size   : 2 Call + 3 Parm + 0 Auto + 0 SOE = 5 words          *
;******************************************************************************
_DS1302BurstWrite:
	.sym	_DestinationCode,-2,14,9,32
	.sym	_pSource,-3,30,9,32
	.sym	_Length,-4,14,9,32
	.bss	_uDS1302_use$1,1
	.sym	_uDS1302_use,_uDS1302_use$1,14,3,32
;* ar2   assigned to _p
	.sym	_p,10,30,4,32
;* r3    assigned to _i
	.sym	_i,3,14,4,32
;* ar1   assigned to _pSerialPort0XCTRL
	.sym	_pSerialPort0XCTRL,9,30,4,32
	.line	1
;----------------------------------------------------------------------
; 119 | VOID    DS1302BurstWrite(UNSIGNED DestinationCode, UNSIGNED *pSource, U
;     | NSIGNED Length)                                                        
;----------------------------------------------------------------------
        push      fp
        ldiu      sp,fp
	.line	2
;----------------------------------------------------------------------
; 121 | static   UNSIGNED    uDS1302_use;                                      
;----------------------------------------------------------------------
	.line	5
;----------------------------------------------------------------------
; 123 | register UNSIGNED    *p = pSource, i;                                  
;----------------------------------------------------------------------
        ldiu      *-fp(3),ar2           ; |123| 
	.line	6
;----------------------------------------------------------------------
; 124 | register UNSIGNED    *pSerialPort0XCTRL = (UNSIGNED *)0x808042;        
;----------------------------------------------------------------------
        ldp       @CL1,DP
        ldiu      @CL1,ar1              ; |124| 
L25:        
	.line	8
;----------------------------------------------------------------------
; 126 | while(uDS1302_use);                                                    
;----------------------------------------------------------------------
        ldp       @CL5,DP
        ldiu      @CL5,ar0              ; |126| 
        ldiu      *ar0,r0               ; |126| 
        cmpi      0,r0                  ; |126| 
        bne       L25                   ; |126| 
;*      Branch Occurs to L25            ; |126| 
	.line	9
;----------------------------------------------------------------------
; 127 | uDS1302_use = 1;                                                       
;----------------------------------------------------------------------
        ldp       @CL5,DP
        ldiu      @CL5,ar0              ; |127| 
        ldiu      1,r0                  ; |127| 
        sti       r0,*ar0               ; |127| 
	.line	11
;----------------------------------------------------------------------
; 129 | *pSerialPort0XCTRL = 0x222;       //DSP口线设置为输出方式,值为0        
;----------------------------------------------------------------------
        ldiu      546,r0                ; |129| 
        sti       r0,*ar1               ; |129| 
	.line	12
;----------------------------------------------------------------------
; 130 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |130| 
        callu     r0                    ; far call to _Delay1us	; |130| 
                                        ; |130| Far Call Occurs
	.line	13
;----------------------------------------------------------------------
; 131 | SetSRST();                        //RST置1,允许操作DS1302              
;----------------------------------------------------------------------
        ldiu      1024,r0               ; |131| 
        or3       r0,*ar1,r0            ; |131| 
        sti       r0,*ar1               ; |131| 
	.line	14
;----------------------------------------------------------------------
; 132 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |132| 
        callu     r0                    ; far call to _Delay1us	; |132| 
                                        ; |132| Far Call Occurs
	.line	15
;----------------------------------------------------------------------
; 133 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |133| 
        callu     r0                    ; far call to _Delay1us	; |133| 
                                        ; |133| Far Call Occurs
	.line	17
;----------------------------------------------------------------------
; 135 | DS1302WriteByte(0x8e);            //清DS1302写保护WP位                 
;----------------------------------------------------------------------
        ldp       @CL3,DP
        ldiu      142,r0                ; |135| 
        ldiu      @CL3,r1               ; |135| 
        push      r0                    ; |135| 
        callu     r1                    ; far call to _DS1302WriteByte	; |135| 
                                        ; |135| Far Call Occurs
        subi      1,sp                  ; |135| 
	.line	18
;----------------------------------------------------------------------
; 136 | DS1302WriteByte(0x0);                                                  
;----------------------------------------------------------------------
        ldp       @CL3,DP
        ldiu      0,r1                  ; |136| 
        ldiu      @CL3,r0               ; |136| 
        push      r1                    ; |136| 
        callu     r0                    ; far call to _DS1302WriteByte	; |136| 
                                        ; |136| Far Call Occurs
        subi      1,sp                  ; |136| 
	.line	20
;----------------------------------------------------------------------
; 138 | *pSerialPort0XCTRL = 0x222;       //DSP口线设置为输出方式,值为0        
;----------------------------------------------------------------------
        ldiu      546,r0                ; |138| 
        sti       r0,*ar1               ; |138| 
	.line	21
;----------------------------------------------------------------------
; 139 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |139| 
        callu     r0                    ; far call to _Delay1us	; |139| 
                                        ; |139| Far Call Occurs
	.line	22
;----------------------------------------------------------------------
; 140 | SetSRST();                        //RST置1,允许操作DS1302              
;----------------------------------------------------------------------
        ldiu      1024,r0               ; |140| 
        or3       r0,*ar1,r0            ; |140| 
        sti       r0,*ar1               ; |140| 
	.line	23
;----------------------------------------------------------------------
; 141 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |141| 
        callu     r0                    ; far call to _Delay1us	; |141| 
                                        ; |141| Far Call Occurs
	.line	24
;----------------------------------------------------------------------
; 142 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |142| 
        callu     r0                    ; far call to _Delay1us	; |142| 
                                        ; |142| Far Call Occurs
	.line	26
;----------------------------------------------------------------------
; 144 | DS1302WriteByte(DestinationCode); //burst方式写DS1302                  
;----------------------------------------------------------------------
        ldiu      *-fp(2),r1            ; |144| 
        ldp       @CL3,DP
        push      r1                    ; |144| 
        ldiu      @CL3,r0               ; |144| 
        callu     r0                    ; far call to _DS1302WriteByte	; |144| 
                                        ; |144| Far Call Occurs
        subi      1,sp                  ; |144| 
	.line	28
;----------------------------------------------------------------------
; 146 | for(i = 0; i < Length; i ++) DS1302WriteByte(*p++);                    
;----------------------------------------------------------------------
        ldiu      0,r3                  ; |146| 
        cmpi      *-fp(4),r3            ; |146| 
        bhs       L28                   ; |146| 
;*      Branch Occurs to L28            ; |146| 
L27:        
        ldp       @CL3,DP
        ldiu      *ar2++(1),r0          ; |146| 
        ldiu      @CL3,r1               ; |146| 
        push      r0                    ; |146| 
        callu     r1                    ; far call to _DS1302WriteByte	; |146| 
                                        ; |146| Far Call Occurs
        subi      1,sp                  ; |146| 
        addi      1,r3                  ; |146| Unsigned
        cmpi      *-fp(4),r3            ; |146| 
        blo       L27                   ; |146| 
;*      Branch Occurs to L27            ; |146| 
L28:        
	.line	30
;----------------------------------------------------------------------
; 148 | *pSerialPort0XCTRL = 0x222;       //DSP口线设置为输出方式,值为0        
;----------------------------------------------------------------------
        ldiu      546,r0                ; |148| 
        sti       r0,*ar1               ; |148| 
	.line	31
;----------------------------------------------------------------------
; 149 | Delay1us();                                                            
;----------------------------------------------------------------------
        ldp       @CL2,DP
        ldiu      @CL2,r0               ; |149| 
        callu     r0                    ; far call to _Delay1us	; |149| 
                                        ; |149| Far Call Occurs
	.line	32
;----------------------------------------------------------------------
; 150 | SetSRST();                        //RST置1,允许操作DS1302              
;----------------------------------------------------------------------
        ldiu      1024,r0               ; |150| 
        or3       r0,*ar1,r0            ; |150| 
        sti       r0,*ar1               ; |150| 
	.line	33
;----------------------------------------------------------------------
; 151 | Delay1us();                                                            

⌨️ 快捷键说明

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