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

📄 funcs.asm

📁 基于TIc6205DSP上开发的MeanShift结合Kalman滤波的代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
             ADD     .L2X  B10, A10, B10    
          || AND     .S2   B6,  B0,  B2
             SHRU    .S2   B6,  8,   B6 
          || ADD     .L2   B10, B2,  B10
        
             
          
          
             AND     .L1   A9,  A0,  A11
          || AND     .L2   B9,  B0,  B11 
          || SHRU    .S1   A9,  8,  A5    
          || SHRU    .S2   B9,  8,  B5  
             
             ADD     .L2X  B11, A11, B11
          || AND     .S2   B6,  B0,  B2
             SHRU    .S2   B6,  8,   B6 
          || ADD     .L2   B11, B2, B11    
             
             
             
             
             AND     .L1   A5,  A0,  A12
          || AND     .L2   B5,  B0,  B12 
          || SHRU    .S1   A5,  8,   A9    
          || SHRU    .S2   B5,  8,   B9  
             
             ADD     .L2X  B12, A12, B12
          || AND     .S2   B6,  B0,  B2
             SHRU    .S2   B6,  8,   B6 
          || ADD     .L2   B12, B2,  B12 
                         
                       
        
             AND     .L1   A9,  A0,  A13
          || AND     .L2   B9,  B0,  B13 
          || AND     .S2   B6,  B0,  B2
             ADD     .L2X  B13, A13, B13
             ADD     .L2   B13, B2,  B13           
      
         
             ADD     .L2   B7,  B8,  B7
             ADD     .S2   B7,  B10, B7
          || ADD     .L2   B8,  B10, B8
              
             CMPGTU  .L2X  B7,  A7,  B7
          || ADD     .S2   B8,  B11, B8
             MPY     .M2   B7,  B0,  B7
          || CMPGTU  .L2X  B8,  A7,  B8
             ADD     .L2   B10,  B11, B10
             STB     .D2   B7,  *B4++      
          || MPY     .M2   B8,  B0,  B8
             ADD     .S2   B10,  B12, B10
          || ADD     .L2   B11,  B12, B11 
             
              
             
             CMPGTU  .L2X  B10,  A7,  B10  
          || ADD     .S2   B11,  B13, B11
             MPY     .M2   B10,  B0,  B10
          || CMPGTU  .L2X  B11,  A7,  B11
             STB     .D2   B8,  *B4++
          || MPY     .M2   B11,  B0,  B11
             STB     .D2   B10,  *B4++  
             STB     .D2   B11,  *B4++  
                                      
        [A1] B    NextPixW 
             MV   .L2   B12, B7
             MV   .S2   B13, B8 
             SUB  .L1   A1, 1, A1 
             NOP   2 
             
             LDW				*B15++, B13
             LDW				*B15++, B12
             LDW				*B15++, B11
             LDW				*B15++, B10
             LDW				*B15++, B9
             LDW				*B15++, B8
             LDW				*B15++, B7
             LDW				*B15++, B6
             LDW				*B15++, B5
             LDW				*B15++, B2
             LDW				*B15++, B1
             LDW				*B15++, B0
             LDW				*B15++, A13
             LDW				*B15++, A12
             LDW				*B15++, A11
             LDW				*B15++, A10
             LDW				*B15++, A9
             LDW				*B15++, A7
             LDW				*B15++, A6
             LDW				*B15++, A5
             LDW				*B15++, A2
             LDW				*B15++, A1
             LDW				*B15++, A0
             
             NOP 4
             
             B    B3
             NOP  5


;==============================================================
;子程序名: SquareX
;功    能: 区域平方和
;输入参数: 模板首地址A4,模板容量B4
;==============================================================
_SquareX:

             STW          A0, *--B15  
             STW          A1, *--B15 
             STW          A2, *--B15  
             STW          A5, *--B15
             STW          A6, *--B15  
             STW          A7, *--B15 
             STW          A9, *--B15
             STW          A10, *--B15  
             STW          A11, *--B15 
             STW          A12, *--B15  
             STW          A13, *--B15
             STW          B0, *--B15  
             STW          B1, *--B15 
             STW          B2, *--B15  
             STW          B5, *--B15
             STW          B6, *--B15  
             STW          B7, *--B15 
             STW          B8, *--B15  
             STW          B9, *--B15
             STW          B10, *--B15 
             STW          B11, *--B15  
             STW          B12, *--B15
             STW          B13, *--B15


            SHRU   .S2  B4, 2, B0
            SUB    .L2  B0,1,B0 
            MVK    .S1  0,  A0 
            MVK    .S1  0xFF, A2 
            LDW    .D1  *A4++, A8 
            NOP  4
            
LOOPX2:     AND    .L1  A8, A2, A10
         || SHRU   .S1  A8, 8, A9
            MPY    .M1  A10, A10, A5      
                                 
            AND    .L1  A9, A2, A11
         || SHRU   .S1  A9, 8, A8
            MPY    .M1  A11, A11, A6      
         || ADD    .L1  A0, A5, A0     
        
            AND    .L1  A8, A2, A12
         || SHRU   .S1  A8, 8, A9
            MPY    .M1  A12, A12, A7      
         || ADD    .L1  A0, A6, A0                       
         
            AND    .L1  A9, A2, A13
            MPY    .M1  A13, A13, A5      
         || ADD    .L1  A0, A7, A0  
 
       [B0] B  LOOPX2
            LDW    .D1  *A4++, A8 
            SUB    .L2  B0, 1, B0       
         || ADD    .L1  A0, A5, A0
            NOP  3
            MV     .L1  A0, A4

             LDW				*B15++, B13
             LDW				*B15++, B12
             LDW				*B15++, B11
             LDW				*B15++, B10
             LDW				*B15++, B9
             LDW				*B15++, B8
             LDW				*B15++, B7
             LDW				*B15++, B6
             LDW				*B15++, B5
             LDW				*B15++, B2
             LDW				*B15++, B1
             LDW				*B15++, B0
             LDW				*B15++, A13
             LDW				*B15++, A12
             LDW				*B15++, A11
             LDW				*B15++, A10
             LDW				*B15++, A9
             LDW				*B15++, A7
             LDW				*B15++, A6
             LDW				*B15++, A5
             LDW				*B15++, A2
             LDW				*B15++, A1
             LDW				*B15++, A0

            B  B3
            NOP 5
            
;==============================================================
;子程序名: MutualityH
;功    能: 两块区域做相关
;输入参数: 模板首地址啊A4,区域二首地址B4,模板容量A6,模板宽度B6,
;           区域宽度A8,
;输出参数: 返回值1--B8, 返回值2--A10      
;==============================================================

_MutualityH:

             STW          A0, *--B15  
             STW          A1, *--B15 
             STW          A2, *--B15  
             STW		  A3, *--B15
             STW          A5, *--B15
             STW          A7, *--B15 
             STW          A9, *--B15
             STW          A11, *--B15 
             STW          A12, *--B15  
             STW          A13, *--B15
             STW          B0, *--B15  
             STW          B1, *--B15 
             STW          B2, *--B15  
             STW          B5, *--B15
             STW          B7, *--B15 
             STW          B9, *--B15
             STW          B10, *--B15 
             STW          B11, *--B15  
             STW          B12, *--B15
             STW          B13, *--B15
             
             MV   .L1  A6, A1          ;模板容量赋给A1
          || MV   .L2  B6, B1          ;模板宽度赋给B1
                    
             SHRU .S1  A1, 2, A1 
          || SHRU .S2  B1, 2, B1
             
            
             SUB  .L1  A8, B6, A5      ;区域宽度赋给A5
             MV   .S1X B8, A6          ;返回值赋给A6        
            
             LDW  .D1  *A4++, A8
          || LDH  .D2  *B4++, B8
             SUB  .L1  A1, 1, A1  
             MV        B1, A3
             MV   .D1  A10, A7         ;返回值赋给A7  
          || MVK  .S1  0xFF, A2       
          || MVK  .S2  0xFF, B2   
             MVK  .S1  0,    A0 
          || MVK  .S2  0,    B0

LOOPHX:    
                    
             AND   .L1   A8,  A2,  A10
          || AND   .L2   B8,  B2,  B10 
          || SHRU  .S1   A8,  8,   A9
          || SHRU  .S2   B8,  8,   B9
             MPYU  .M1X  A10, B10, A10          
          || MPYU  .M2   B10, B10, B5
             
             LDH  .D2  *B4++, B8   
             AND   .L1   A9,  A2,  A11
          || AND   .L2   B9,  B2,  B11 
          || SHRU  .S1   A9,  8,   A8
             MPYU  .M1X  A11, B11, A11          
          || MPYU  .M2   B11, B11, B6
          || ADD   .L1   A0,  A10, A0
          || ADD   .L2   B0,  B5,  B0 
             NOP 2                                    
             
             AND   .L1   A8,  A2,  A12
          || AND   .L2   B8,  B2,  B12 
          || SHRU  .S1   A8,  8,   A9
          || SHRU  .S2   B8,  8,   B9
             MPYU  .M1X  A12, B12, A12          
          || MPYU  .M2   B12, B12, B7
          || ADD   .L1   A0,  A11, A0
          || ADD   .L2   B0,  B6,  B0  
          || SUB   .S2   B1,  1,   B1  
          
             AND   .L1   A9,  A2,  A13
          || AND   .L2   B9,  B2,  B13 
             MPYU  .M1X  A13, B13, A13          
          || MPYU  .M2   B13, B13, B5
          || ADD   .L1   A0,  A12, A0
          || ADD   .L2   B0,  B7,  B0  
     ||[!B1] ADD   .S2   B4,  A5, B4
                  
              
        [A1] B  LOOPHX            
       
             LDW   .D1  *A4++, A8
          || LDH   .D2  *B4++, B8
             ADD   .L1   A0,  A13, A0
          || ADD   .L2   B0,  B5,  B0
          || SUB   .S1   A1,  1,   A1
       [!B1] MV         A3,  B1
             NOP 2  
     
             STW   .D1   A0,  *A6
             MV    .S1X  B0,  A0 
             STW   .D1   A0,  *A7


             LDW				*B15++, B13
             LDW				*B15++, B12
             LDW				*B15++, B11
             LDW				*B15++, B10
             LDW				*B15++, B9
             LDW				*B15++, B7
             LDW				*B15++, B5
             LDW				*B15++, B2
             LDW				*B15++, B1
             LDW				*B15++, B0
             LDW				*B15++, A13
             LDW				*B15++, A12
             LDW				*B15++, A11
             LDW				*B15++, A9
             LDW				*B15++, A7
             LDW				*B15++, A5
             LDW                *B15++, A3
             LDW				*B15++, A2
             LDW				*B15++, A1
             LDW				*B15++, A0
             
             B  B3
             NOP  5       

;==============================================================
;子程序名: GetInitSqrt
;功    能: 用牛顿迭代求方根时计算迭代初始值
;输入参数: 待开方的整数---A4
;输出参数: 初始值---A4      
;==============================================================
_GetInitSqrt:
				STW					A3, *--B15
			||	LMBD	.L1			1, A4, A4
			||	MVK		.S1			32, A3
				B 		.S2			B3
				LDW					*B15++, A3
				SUB		.L1			A3, A4, A3
				MVK		.S1			1, A4
				SHRU	.S1         A3, 1, A3
				SHL		.S1			A4, A3, A4
			

⌨️ 快捷键说明

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