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

📄 myclib.msa

📁 Actions ucOS-II mp3方案源码,可以做参考
💻 MSA
📖 第 1 页 / 共 5 页
字号:
  
                      
        name    cliball
        
        public  strcat          //added  by vicky 20040816 
        public  strchr          //added  by vicky 20040816 
        public  strcmp          //added  by vicky 20040816 
        public  strcpy          //added  by vicky 20040816 
        public  strcspn         //added  by vicky 20040816 
        public  strlen          //added  by vicky 20040816 
        public  strncat         //added  by vicky 20040816 
        public  strncpy         //added  by vicky 20040816 
        public  strpbrk         //added  by vicky 20040816 
        public  strrchr         //added  by vicky 20040816 
        public  strspn          //added  by vicky 20040816 
        public  strstr          //added  by vicky 20040816
        public  strcoll        	//added  by vicky 20050126
        public  strncmp     	//added  by vicky 20050126

        
        public  memmove        
        public  memchr        //added  by vicky 20050126
        public  memcmp        //added  by vicky 20050126
        public  memcpy        //added  by vicky 20050126
        public  memset        //added  by vicky 20050126
       
        
        public  ?C_LSH_L01
        public  ?UC_RSH_L01
        public  ?SC_RSH_L01
        public  ?UC_DIV_L01
        public  ?SC_DIV_L01   
        public  ?UC_MOD_L01
        public  ?SC_MOD_L01  
        public  ?C_FIND_SIGN_L01 
        public  ?C_DIVMOD_L01               
        public  ?C_MUL_L01
        public  ?C_LSHASG_L01
        public  ?UC_RSHASG_L01
        public  ?SC_RSHASG_L01
        public  ?C_MULASG_L01

                                 
        public  ?S_LSH_L02
        public  ?US_RSH_L02
        public  ?SS_RSH_L02
        public  ?US_DIV_L02
        public  ?SS_DIV_L02 
        public  ?US_MOD_L02
        public  ?SS_MOD_L02 
        public  ?S_FIND_SIGN_L02     
        public  ?S_DIVMOD_L02 
        public  ?S_MUL_L02
        public  ?SS_CMP_L02         //added  by vicky 20040816 
        public  ?S_LSHASG_L02
        public  ?US_RSHASG_L02
        public  ?SS_RSHASG_L02 
        public  ?SS_MODASG_L02
        public  ?US_MODASG_L02
        public  ?SS_DIVASG_L02
        public  ?US_DIVASG_L02
        public  ?S_MULASG_L02
  
        
        public  ?L_LSH_L03
        public  ?UL_RSH_L03
        public  ?SL_RSH_L03
        public  ?L_MUL_L03 
        public  ?UL_DIV_L03 
        public  ?SL_DIV_L03
        public  ?UL_MOD_L03
        public  ?SL_MOD_L03
        public  ?L_FIND_SIGN_L03
        public  ?L_DIVMOD_L03
        public  ?L_AND_L03              //added  by vicky 20040816 
        public  ?L_OR_L03               //added  by vicky 20040816 
        public  ?L_XOR_L03              //added  by vicky 20040816         
        public  ?SL_CMP_L03             //added  by vicky 20040816 
        public  ?L_INC_L03
        public  ?L_DEC_L03              //added  by vicky 20040816 
        public  ?L_NOT_L03        
        public  ?L_NEG_L03              //added  by vicky 20040816 
        public  ?L_MULASG_L03
        public  ?UL_DIVASG_L03
        public  ?SL_DIVASG_L03 
        public  ?UL_MODASG_L03
        public  ?SL_MODASG_L03
        public  ?L_END_MULDIVASG_L03 
        public  ?L_ADDASG_L03
        public  ?L_SUBASG_L03
        public  ?L_ANDASG_L03           //added  by vicky 20040816
        public  ?L_ORASG_L03            //added  by vicky 20040816
        public  ?L_XORASG_L03           //added  by vicky 20040816        
        public  ?L_LSHASG_L03
        public  ?UL_RSHASG_L03
        public  ?SL_RSHASG_L03 
        public  ?L_NOTASG_L03           //added  by vicky 20040816
        public  ?L_NEGASG_L03           //added  by vicky 20040816
        public  ?L_INCASG_L03           //added  by vicky 20040816       
        public  ?L_DECASG_L03           //added  by vicky 20040816    
        public  ?L_END_ASG_L03
        
               
        //switch
        public  ?C_S_SWITCH_L06
        public  ?S_S_SWITCH_L06        //added  by vicky 20040816
        public  ?L_S_SWITCH_L06        //added  by vicky 20040816
        public  ?S_SWITCH_END_L06      //added  by vicky 20040816
        public  ?C_V_SWITCH_L06        
        public  ?S_V_SWITCH_L06        //added  by vicky 20040816
        public  ?L_V_SWITCH_L06        //added  by vicky 20040816 
        public  ?V_SWITCH_END_L06

        
        public  ?ENT_PARM_DIRECT_L09   //added  by vicky 20040816
        public  ?ENT_AUTO_DIRECT_L09   //added  by vicky 20040816
        public  ?LEAVE_DIRECT_L09      //added  by vicky 20040816
        public  ?MONITOR_LEAVE_IX_L09
        public  ?MONITOR_LEAVE_IX_PA_L09
      
        
        public  ?BF_UC_MODASG_L10
        public  ?BF_SC_EXT_L10
        public  ?BF_UC_LD_SHIFT_DOWN_L10
        public  ?BF_C_SHIFT_UP_L10
        public  ?BF_C_RET_VAL_L10
        public  ?BF_SS_MODASG_L10
        public  ?BF_SS_EXT_L10
        public  ?BF_MASKED_LD_L10
        public  ?BF_SS_LD_SHIFT_DOWN_L10
        public  ?BF_US_LD_SHIFT_DOWN_L10
        public  ?BF_S_SHIFT_UP_L10
        public  ?BF_MASKED_ST_L10
        public  ?BF_S_RET_VAL_L10
    
    
        public  ?STRCPY_L11
        public  ?STRLEN_L11            //added  by vicky 20040816
        public  ?STRCAT_L11            //added  by vicky 20040816
        public  ?MEMSET_L11
        public  ?MEMCMP_L11            //added  by vicky 20040816
        public  ?STRCMP_L11            //added  by vicky 20040816
        public  ?STRCHR_L11            //added  by vicky 20040816
        
        public  itoa1                  //added  by vicky 20040816
        public  itoa2                  //added  by vicky 20040816
        public  itoa3                  //added  by vicky 20040816
        public  itoa4                  //added  by vicky 20040816
        public  delay                  //added  by vicky 20040816
        
        rseg    MATHLIB
        


/******************************************************************************/
strcat:     //----------------------//     
    call     ?ENT_PARM_DIRECT_L09
    ld       e,c
    ld       d,b
    ld       l,(ix+2)
    ld       h,(ix+3)
    call     ?STRCAT_L11
    jp       ?LEAVE_DIRECT_L09
     
/******************************************************************************/
?SC_RSH_L01:     //----------------------//
    inc     b
    dec     b
    ret     z
SC_RSH_L01_0
    sra    a
    djnz    SC_RSH_L01_0
    ret        

/******************************************************************************/
?SC_RSHASG_L01:     //----------------------//
    ld    a, (hl)
    call    ?SC_RSH_L01
    ld    (hl),a
    ret     
        
/******************************************************************************/
?SS_RSH_L02:     //----------------------//
    inc     b
    dec     b
    ret     z
SS_RSH_L02_0
    sra    d
    rr    e
    djnz    SS_RSH_L02_0
    ret

/******************************************************************************/
?SS_RSHASG_L02    //----------------------//
    ld    e,(hl)
    inc    hl
    ld    d,(hl)
    call    ?SS_RSH_L02
    ld    (hl),d
    dec    hl
    ld    (hl),e
    ret
    
/******************************************************************************/
?SL_RSH_L03:     //----------------------//
    or    a
    ret   z
SL_RSH_L03_0      
    sra   b
    rr    c
    rr    h
    rr    l
    dec   a
    jr    nz,SL_RSH_L03_0
    ret

/******************************************************************************/    
?SL_RSHASG_L03:    //----------------------//
    ld    e,(hl)
    inc   hl
    ld    d,(hl)
    inc   hl
    ld    c,(hl)
    inc   hl
    ld    b,(hl)
    ex    de,hl
    call  ?SL_RSH_L03
    jp    ?L_END_ASG_L03
        
/******************************************************************************/
?C_LSH_L01:     //----------------------//
    inc     b
    dec     b
    ret     z
C_LSH_L01_0
    add     a,a
    djnz    C_LSH_L01_0
    ret
/******************************************************************************/
?UC_RSH_L01:    //----------------------//
    inc     b
    dec     b
    ret     z
UC_RSH_L01_0
    srl     a
    djnz    UC_RSH_L01_0
    ret
/******************************************************************************/
?C_MUL_L01:     //----------------------//
    push    bc
    ld      c,a
    xor     a
C_MUL_L01_0        
    srl     b
    jr      c,C_MUL_L01_1
    jr      z,C_MUL_L01_2
    sla     c
    jr      C_MUL_L01_0
C_MUL_L01_1
    add     a,c
    sla     c
    jr      C_MUL_L01_0
C_MUL_L01_2        
    pop     bc
    ret
/******************************************************************************/
?C_LSHASG_L01:  //----------------------//
    ld      a,(hl)
    call    ?C_LSH_L01
    ld      (hl),a
    ret
/******************************************************************************/
?UC_RSHASG_L01: //----------------------//
    ld      a,(hl)
    call    ?UC_RSH_L01
    ld      (hl),a
    ret
/******************************************************************************/
?C_MULASG_L01:  //----------------------//
    push    bc
    ld      b,a
    ld      a,(hl)
    call    ?C_MUL_L01
    ld      (hl),a
    pop     bc
    ret
/******************************************************************************/
?S_LSH_L02:     //----------------------//
    inc     b
    dec     b
    ret     z
    ex      de,hl
S_LSH_L02_0:        
    add     hl,hl
    djnz    S_LSH_L02_0
    ex      de,hl
    ret
/******************************************************************************/
?US_RSH_L02:    //----------------------//
    inc     b
    dec     b
    ret     z
US_RSH_L02_0        
    srl     d
    rr      e
    djnz    US_RSH_L02_0                
    ret
/******************************************************************************/
?L_ADDASG_L03:  //----------------------//
    push    af
    ld      a,(hl)
    add     a,e
    ld      (hl),a
    ld      e,a
    inc     hl
    ld      a,(hl)
    adc     a,d
    ld      (hl),a
    ld      d,a
    inc     hl
    ld      a,(hl)
    adc     a,c
    ld      (hl),a
    ld      c,a
    inc     hl
    ld      a,(hl)
    adc     a,b
    ld      (hl),a
    ld      b,a
    dec     hl
    dec     hl
    dec     hl
    pop     af
    ret
/******************************************************************************/
?L_SUBASG_L03:  //----------------------//        
    push    af
    ld      a,(hl)
    sub     e
    ld      (hl),a
    ld      e,a
    inc     hl
    ld      a,(hl)
    sbc     a,d
    ld      (hl),a
    ld      d,a
    inc     hl
    ld      a,(hl)
    sbc     a,c
    ld      (hl),a
    ld      c,a
    inc     hl
    ld      a,(hl)
    sbc     a,b
    ld      (hl),a
    ld      b,a
    dec     hl
    dec     hl
    dec     hl
    pop     af
    ret
/******************************************************************************/
?L_LSHASG_L03:  //----------------------//
    ld      e,(hl)
    inc     hl
    ld      d,(hl)
    inc     hl
    ld      c,(hl)
    inc     hl
    ld      b,(hl)
    ex      de,hl
    call    ?L_LSH_L03
    jp      ?L_END_ASG_L03 
/******************************************************************************/
?UL_RSHASG_L03: //----------------------//
    ld      e,(hl)
    inc     hl
    ld      d,(hl)
    inc     hl
    ld      c,(hl)
    inc     hl
    ld      b,(hl)
    ex      de,hl
    call    ?UL_RSH_L03
    jp      ?L_END_ASG_L03
/******************************************************************************/
?L_END_ASG_L03:         //----------------------//
    ex      de,hl
    ld      (hl),b
    dec     hl
    ld      (hl),c
    dec     hl
    ld      (hl),d
    dec     hl
    ld      (hl),e
    ret        
/******************************************************************************/
?S_MUL_L02:             //----------------------//
    push    af
    push    bc
    push    hl
    ld      hl,0
S_MUL_L02_L0:        
    srl     b
    rr      c
    jr      c,S_MUL_L02_L1
    ld      a,b
    or      c
    jr      z,S_MUL_L02_L2
    sla     e
    rl      d
    jr      S_MUL_L02_L0
S_MUL_L02_L1        
    add     hl,de
    sla     e
    rl      d
    jr      S_MUL_L02_L0
S_MUL_L02_L2:        
    ex      de,hl
    pop     hl
    pop     bc
    pop     af
    ret
/******************************************************************************/
?S_LSHASG_L02:  //----------------------//
    ld      e,(hl)
    inc     hl
    ld      d,(hl)
    call    ?S_LSH_L02
    ld      (hl),d
    dec     hl
    ld      (hl),e
    ret
/******************************************************************************/
?US_RSHASG_L02  //----------------------//
    ld      e,(hl)
    inc     hl
    ld      d,(hl)
    call    ?US_RSH_L02
    ld      (hl),d
    dec     hl
    ld      (hl),e
    ret
/******************************************************************************/
?S_MULASG_L02:  //----------------------//
    ld      e,(hl)
    inc     hl
    ld      d,(hl)
    call    ?S_MUL_L02
    ld      (hl),d
    dec     hl
    ld      (hl),e
    ret
/******************************************************************************/
?L_LSH_L03:     //----------------------//
    or      a
L_LSH_L03_L0:
    ret     z
    cp      8
    jr      c,L_LSH_L03_L1
    ld      b,c
    ld      c,h
    ld      h,l
    ld      l,0
    sub     8
    jr      L_LSH_L03_L0
L_LSH_L03_L1:
    add     hl,hl
    rl      c
    rl      b
    dec     a
    jr      nz,L_LSH_L03_L1
    ret
/******************************************************************************/
?L_MUL_L03:     //----------------------//
    ex      (sp),hl
    push    de
    push    ix
    ld      ix,0
    add     ix,sp
    ld      d,(ix+9)
    ld      (ix+9),h
    ld      e,(ix+8)
    ld      (ix+8),l
    push    de
    push    bc
    push    af
    ld      hl,0
    ld      de,0
    ld      b,0x20
    ld      c,(ix-3)
L_MUL_L03_0        
    srl     (ix-1)
    rr      (ix-2)
    rr      (ix+7)
    rr      (ix+6)
    jr      nc,L_MUL_L03_1
    ld      a,l
    add     a,(ix+4)
    ld      l,a
    ld      a,h
    adc     a,(ix+5)
    ld      h,a
    ld      a,e
    adc     a,(ix-4)
    ld      e,a
    ld      a,d
    adc     a,c
    ld      d,a
L_MUL_L03_1
    sla     (ix+4)
    rl      (ix+5)
    rl      (ix-4)
    rl      c
    djnz    L_MUL_L03_0
    ld      (ix-3),c
    ld      b,d
    ld      c,e
    pop     af
    pop     de
    pop     de
    pop     ix
    pop     de
    inc     sp
    inc     sp
    inc     sp
    inc     sp
    ret
/******************************************************************************/
?L_MULASG_L03:          //----------------------//
    push    bc
    push    de
    ld      e,(hl)
    inc     hl
    ld      d,(hl)
    inc     hl
    ld      c,(hl)
    inc     hl
    ld      b,(hl)
    ex      de,hl
    call    ?L_MUL_L03
    jp      ?L_END_MULDIVASG_L03
/******************************************************************************/
?L_END_MULDIVASG_L03:   //----------------------//
    ex      de,hl
    ld      (hl),b
    dec     hl
    ld      (hl),c
    dec     hl
    ld      (hl),d
    dec     hl
    ld      (hl),e
    ret
/******************************************************************************/
?UL_RSH_L03:    //----------------------//

⌨️ 快捷键说明

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