当前位置: 代码迷 >> 汇编语言 >> 1小段汇编程序,帮忙解释一下
  详细解决方案

1小段汇编程序,帮忙解释一下

热度:194   发布时间:2016-05-02 04:36:14.0
一小段汇编程序,帮忙解释一下
;**************************************************************************************************[]
; function:  N-次方差计算
;
;    INPUT:
;          ZH:ZL:= #R_SSP_ADC_CoorBuf_E0E2
;           VarL:= NUMBER
; VarL,VarH,VAR2,VAR3
;**************************************************************************************************[]
Sub_calculation_Coording_3DEA:
                        CALL    Sub_OpenStk_withXDate__11F2
                                ;
WDR ;
                        LDD     ZH, Y+$04  ;
LDD     ZL, Y+$05 ;D ;AD_Buffer
MOVW    dw4F:dw4E, ZH:ZL ;
                                ;       [ 信号曲线参数保存  ]
                        MOVW ZH:ZL, dw4F:dw4E  ;Copy dw4F: to ZH:
                        PUSH    ZL  ;
PUSH    ZH ;
LDI XH, HIGH(R_SSPLine_Buffer) ;Loads an 8 bit constant directly to register 16 to 31
LDI XL,  LOW(R_SSPLine_Buffer) ;
                        CALL    Sub_MOV_SMPADC_To_Coor_42E5 ;信号曲线参数D_SSPdata_num/D_zoom_dat 存储数据
                        POP     ZH  ;
POP     ZL ;
                        ; ---------------------------------
CLC ;
                        LDI     XL, $01 ;直接赋值1
                        LDD     XH, Y+$07 ;Y+$07地址数据送入XH
TST     XH ;Test XH
BREQ _L_next_3E0F ;相等跳转    _L_next_3E0F
BRLT    _L_next_3E0F ;如果小于0   _L_next_3E0F
                        //循环
_L_loop_3E0B:   LSL     XL ;位左偏移 高位送入C
                        DEC     XH ;XH-1
TST XH ;Test XH   a logical AND between  XH and itself 
                        BRNE    _L_loop_3E0B    ;bgt _L_loop_3E0B
; ---------------------------------
_L_next_3E0F:           MOV     dw48, XL ;
LDI ZH, HIGH(R_SSPLine_Buffer) ;
LDI ZL,  LOW(R_SSPLine_Buffer) ;
MOVW    dw4d:dw4C, ZH:ZL ;
                        MOV     dw49, dw48 ;
                        ;       RAM_dw4A <== Fun_SUM{ @R_SSP_ADC_buffer_C307+.. for 2^^Stk }
                        CLR     XH ;
                        CLR     XL ;
                        MOVW    dw4B:dw4A, XH:XL  ;
_L_loop_3E1A:   TST dw49 ;
                        BREQ    _L_next_3E30 ;