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

📄 myclib.msa

📁 Actions ucOS-II mp3方案源码,可以做参考
💻 MSA
📖 第 1 页 / 共 5 页
字号:
STRCMP_L11_1
    rr       h        
//(281)    ld       hl,0                 
//(284)    ld       de,1ccbh                      
    pop      de                            
    pop      af                              
    ret

/******************************************************************************/
?SL_CMP_L03:     //----------------------//
    ex       de,hl
    ex       (sp),hl
    push     de
    push     bc
    push     af
    push     de
    push     bc
    ex       de,hl
    ld       hl,0fh
    add      hl,sp
    ld       a,(hl)
    xor      80h
    ld       b,a
    ld       (hl),d
    dec      hl
    ld       c,(hl)
    ld       (hl),e
    ex       de,hl
    pop      hl
    ld       a,h
    xor      80h
    ld       h,a
    sbc      hl,bc
    pop      hl
    jr       nz,SL_CMP_L03_0
    ex       de,hl
    dec      hl
    ld       a,(hl)
    dec      hl
    ld       l,(hl)
    ld       h,a
    ex       de,hl
    and      a
    sbc      hl,de
SL_CMP_L03_0
    pop      bc
    ld       a,b
    pop      bc
    pop      hl
    pop      de
    inc      sp
    inc      sp
    ret    
      
/******************************************************************************/
?L_DECASG_L03:     //----------------------//
    ld       e,(hl)
    inc      hl
    ld       d,(hl)
    inc      hl
    ld       c,(hl)
    inc      hl
    ld       b,(hl)
    ex       de,hl
    call     ?L_DEC_L03 
    jp       ?L_END_ASG_L03      
   
/******************************************************************************/
?STRCAT_L11:     //----------------------//
    push     hl
    push     de
    push     bc
    push     af
    xor      a
    ld       b,a
    ld       c,a
    cpir
    dec      hl
    ex       de,hl
STRCAT_L11_0
    cp       (hl)
    ldi
    jr       nz,STRCAT_L11_0
    pop      af
    pop      bc
    pop      de
    pop      hl
    ret
       
/******************************************************************************/
?STRLEN_L11:     //----------------------//
    push     bc
    push     af
    xor      a
    ld       b,a
    ld       c,a
    cpir
    ld       hl,0ffffh 
    sbc      hl,bc
    pop      af
    pop      bc
    ret     

/******************************************************************************/
?STRCHR_L11:     //----------------------//        
    ld       a,(hl)
    cp       e
    ret      z
    or       a
    inc      hl
    jr       nz,?STRCHR_L11     
    ld       hl,0
    ret

/******************************************************************************/
?SS_CMP_L02:     //----------------------// 
    push     bc
    push     hl
    push     af
    ld       a,h
    xor      80h
    ld       h,a
    ld       a,b
    xor      80h
    ld       b,a
    pop      af
    and      a
    sbc      hl,bc
    pop      hl
    pop      bc
    ret
       
/******************************************************************************/
?L_AND_L03:     //----------------------// 
    ex       de,hl
    ex       (sp),hl
    push     af
    push     hl
    ld       hl,6
    add      hl,sp
    ld       a,(hl)
    and      e
    ld       (hl),a
    inc      hl
    ld       a,(hl)
    and      d
    ld       (hl),a
    pop      de
    inc      hl
    ld       a,(hl)
    ld       (hl),e
    and      c
    ld       c,a
    inc      hl
    ld       a,(hl)
    ld       (hl),d
    and      b
    ld       b,a
    pop      af
    pop      de
    pop      hl
    ret
    
/******************************************************************************/
?L_OR_L03:     //----------------------//
    ex       de,hl
    ex       (sp),hl
    push     af
    push     hl
    ld       hl,6
    add      hl,sp
    ld       a,(hl)
    or       e
    ld       (hl),a
    inc      hl
    ld       a,(hl)
    or       d
    ld       (hl),a
    pop      de
    inc      hl
    ld       a,(hl)
    ld       (hl),e
    or       c
    ld       c,a
    inc      hl
    ld       a,(hl)
    ld       (hl),d
    or       b
    ld       b,a
    pop      af
    pop      de
    pop      hl
    ret
        
/******************************************************************************/
?L_XOR_L03:     //----------------------// 
    ex       de,hl
    ex       (sp),hl
    push     af
    push     hl
    ld       hl,6
    add      hl,sp
    ld       a,(hl)
    xor      e
    ld       (hl),a
    inc      hl
    ld       a,(hl)
    xor      d
    ld       (hl),a
    pop      de 
    inc      hl
    ld       a,(hl)
    ld       (hl),e
    xor      c
    ld       c,a
    inc      hl
    ld       a,(hl)
    ld       (hl),d
    xor      b
    ld       b,a
    pop      af
    pop      de
    pop      hl
    ret     
     
/******************************************************************************/
?L_NEG_L03:     //----------------------//
    push     af
    xor      a
    sub      l
    ld       l,a
    ld       a,0
    sbc      a,h
    ld       h,a
    ld       a,0
    sbc      a,c
    ld       c,a
    ld       a,0
    sbc      a,b
    ld       b,a
    pop      af
    ret
         
/******************************************************************************/
?L_ANDASG_L03:     //----------------------//
    push     af
    ld       a,(hl)
    and      e
    ld       (hl),a
    ld       e,a
    inc      hl
    ld       a,(hl)
    and      d
    ld       (hl),a
    ld       d,a
    inc      hl
    ld       a,(hl)
    and      c
    ld       (hl),a
    ld       c,a
    inc      hl
    ld       a,(hl)
    and      b
    ld       (hl),a
    ld       b,a
    dec      hl
    dec      hl
    dec      hl
    pop      af
    ret
    
/******************************************************************************/
?L_ORASG_L03:     //----------------------//
    push     af
    ld       a,(hl)
    or       e
    ld       (hl),a
    ld       e,a
    inc      hl
    ld       a,(hl)
    or       d
    ld       (hl),a
    ld       d,a
    inc      hl
    ld       a,(hl)
    or       c
    ld       (hl),a
    ld       c,a
    inc      hl
    ld       a,(hl)
    or       b
    ld       (hl),a
    ld       b,a
    dec      hl
    dec      hl
    dec      hl
    pop      af
    ret 
    
/******************************************************************************/
?L_XORASG_L03:     //----------------------// 
    push     af
    ld       a,(hl)
    xor      e
    ld       (hl),a
    ld       e,a
    inc      hl
    ld       a,(hl)
    xor      d
    ld       (hl),a
    ld       d,a
    inc      hl
    ld       a,(hl)
    xor       c
    ld       (hl),a
    ld       c,a
    inc      hl
    ld       a,(hl)
    xor       b
    ld       (hl),a
    ld       b,a  
    dec      hl
    dec      hl
    dec      hl
    pop      af
    ret
       
/******************************************************************************/
?L_NOTASG_L03:     //----------------------//
    ld       e,(hl)
    inc      hl
    ld       d,(hl)
    inc      hl
    ld       c,(hl)
    inc      hl
    ld       b,(hl)
    ex       de,hl
    call     ?L_NOT_L03
    jp       ?L_END_ASG_L03
        
/******************************************************************************/
?L_NEGASG_L03:     //----------------------//
    ld       e,(hl)
    inc      hl
    ld       d,(hl)
    inc      hl
    ld       c,(hl)
    inc      hl
    ld       b,(hl)
    ex       de,hl
    call     ?L_NEG_L03
    JP       ?L_END_ASG_L03
        
/******************************************************************************/
?L_INCASG_L03:     //----------------------//
    ld       e,(hl)
    inc      hl
    ld       d,(hl)
    inc      hl
    ld       c,(hl)
    inc      hl
    ld       b,(hl)
    ex       de,hl
    call     ?L_INC_L03
    jp       ?L_END_ASG_L03
      
/******************************************************************************/
?L_S_SWITCH_L06:     //----------------------//
    ex       (sp),hl
    push     af
    push     de
    push     bc
    ld       a,e
    sub      (hl)
    inc      hl
    ld       e,a
    ld       a,d
    sbc      a,(hl)
    inc      hl
    ld       d,a
    ld       a,c
    sbc      a,(hl)
    inc      hl
    ld       c,a
    ld       a,b
    sbc      a,(hl)
    inc      hl
    ld       b,a
    ld       a,e
    sub      (hl)
    inc      hl
    ld       a,d
    sbc      a,(hl)
    inc      hl
    ld       a,c
    sbc      a,0
    ld       a,b
    sbc      a,0
    pop      bc
    jp       ?S_SWITCH_END_L06
     
/******************************************************************************/
?L_V_SWITCH_L06:     //----------------------//    
    ex       (sp),hl
    push     af
    push     bc
    push     ix
    ld       ix,0
    add      ix,sp
    ld       c,(hl)
    inc      hl
    ld       b,(hl)
    jr       L_V_SWITCH_L06_1
L_V_SWITCH_L06_0
    inc      hl
    inc      hl
L_V_SWITCH_L06_1
    inc      hl
    ld       a,b
    or       c
    jr       z,L_V_SWITCH_L06_2
    dec      bc
    ld       a,e
    sub      (hl)
    inc      hl
    jr       nz,L_V_SWITCH_L06_0
    ld       a,d
    sub      (hl)
    jr       nz,L_V_SWITCH_L06_0
    inc      hl
    ld       a,(ix+2)
    sub      (hl)
    inc      hl
    jr       nz,L_V_SWITCH_L06_1
    ld       a,(ix+3)
    sub      (hl)
    jr       nz,L_V_SWITCH_L06_1
    inc      hl
    inc      hl
    inc      hl
L_V_SWITCH_L06_2
    add      hl,bc
    add      hl,bc
    add      hl,bc
    add      hl,bc
    pop      ix
    jp       ?V_SWITCH_END_L06
    

    
/******************************************************************************/
strchr:     //----------------------// 
    call     ?ENT_PARM_DIRECT_L09
    ld       e,c
    ld       l,(ix+2)
    ld       h,d
    call     ?STRCHR_L11
    jp       ?LEAVE_DIRECT_L09
    
/******************************************************************************/
strcmp:     //----------------------//
    call     ?ENT_PARM_DIRECT_L09
    ld       l,c
    ld       h,b
    call     ?STRCMP_L11
    jp       ?LEAVE_DIRECT_L09     

/******************************************************************************/
strcpy:     //----------------------//
    call     ?ENT_PARM_DIRECT_L09
    ld       e,c
    ld       d,b
    ld       l,(ix+2)
    ld       h,(ix+3)
    call     ?STRCPY_L11
    jp       ?LEAVE_DIRECT_L09 
    
/******************************************************************************/
strcspn:     //----------------------// 
    call     ?ENT_AUTO_DIRECT_L09
    defw     0000h
    push     iy
    ld       de,0
strcspn_0
    ld       l,(ix+2)
    ld       h,(ix+3)
    xor      a
    or       (hl)
    jr       z,strcspn_4
    ld       l,(ix+4)
    ld       h,(ix+5)
    push     hl
    pop      iy
strcspn_1
    xor      a
    or       (iy+0)
    jr       z,strcspn_2
    ld       l,(ix+2)
    ld       h,(ix+3)
    ld       a,(iy+0)
    cp       (hl)
    inc      iy
    jr       nz,strcspn_1
    jr       strcspn_4
strcspn_2
    inc      (ix+2)
    jr       nz,strcspn_3
    inc      (ix+3)
strcspn_3
    inc      de 
    jr       strcspn_0
strcspn_4   
    ex       de,hl
    pop      iy
    jp       ?LEAVE_DIRECT_L09
    
/******************************************************************************/
?ENT_AUTO_DIRECT_L09:     //----------------------// 
    pop      hl
    push     bc
    push     de
    push     ix
    ld       ix,0
    add      ix,sp
    ld       e,(hl)
    inc      hl
    ld       d,(hl)
    inc      hl
    ex       de,hl
    add      hl,sp
    ld       sp,hl
    ex       de,hl
    jp       (hl)
    
/******************************************************************************/
strlen:     //----------------------// 
    call     ?ENT_PARM_DIRECT_L09
    ex       de,hl
    call     ?STRLEN_L11
    jp       ?LEAVE_DIRECT_L09  
      
/******************************************************************************/
strncat:     //----------------------//
    push     iy
    push     ix
    push     af
    push     de
    pop      ix
    push     bc
    pop      iy
    ld       hl,0
    add      hl,sp
    ld       (hl),e
    inc      hl
    ld       (hl),d

⌨️ 快捷键说明

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