您的位置:控制工程论坛网论坛 » 软件与程序 » MCS-51单片机实用子程序库 查找移位程序

xilinxue

xilinxue   |   当前状态:在线

总积分:16186  2024年可用积分:0

注册时间: 2008-06-26

最后登录时间: 2020-03-22

空间 发短消息加为好友

MCS-51单片机实用子程序库 查找移位程序

xilinxue  发表于 2009/3/23 11:06:57      2771 查看 12 回复  [上一主题]  [下一主题]

手机阅读

;辛普生积分程序
;入口: DPTR,N,COUNT
;占用资源: ACC,R3,R4,R6,R7
;堆栈需求: 2字节
;出口: R3,R4
SJF : MOV R7,N
MOVX A,@DPTR
INC DPTR
MOV R4,A
MOV R3,#00H
DEC R7
SJF1 : MOVX A,@DPTR
INC DPTR
CLR C
RLC A
MOV R6,A
CLR A
RLC A
XCH A,R7
JNB ACC.0,SJF2
XCH A,R6
RLC A
XCH A,R6
XCH A,R7
RLC A
XCH A,R7
SJF2 : XCH A,R7
XCH A,R6
ADD A,R4
MOV R4,A
MOV A,R6
ADDC A,R3
MOV R3,A
DJNZ R7,SJF1
SJF3 : MOVX A,@DPTR
ADD A,R4
MOV R4,A
CLR A
ADDC A,R3
MOV R3,A
MOV R7,#COUNT
LCALL NMUL21
MOV A,N
MOV B,#03H
MUL AB
MOV R7,A
LCALL C_NDIV_3_1_HANDLE
RET
NMUL21 : MOV A,R4
MOV B,R7
MUL AB
MOV R4,A
MOV A,B
XCH A,R3
MOV B,R7
MUL AB
ADD A,R3
MOV R3,A
CLR A
ADDC A,B
MOV R2,A
CLR OV
RET
C_NDIV_3_1_HANDLE : MOV B,#10H
NDV311 : CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV F0,C
CLR C
SUBB A,R7
JB F0,NDV312
JC NDV313
NDV312 : MOV R2,A
INC R4
NDV313 : DJNZ B,NDV311
RET
1楼 0 0 回复
  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/12 13:51:46

    ;N字节数据左移程序 RLC([R0])=(CF[R0])
    ;入口: R0,R7
    ;占用资源: ACC,B
    ;堆栈需求: 2字节
    ;出口: R0,CF
    NRLCN: MOV B,R0
    CLR C
    NRLN1: MOV A,@R0
    RLC A
    MOV @R0,A
    INC R0
    DJNZ R7,NRLN1
    MOV R0,B
    RET
    2楼 回复本楼

    引用 xilinxue 2009/2/12 13:51:46 发表于2楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:56:32


    ;单字节顺序查找程序
    ;入口: R0,R1,A,R7
    ;占用资源: B
    ;堆栈需求: 2字节
    ;出口: R0,R1,A
    FINDB1 : MOV B,A
    MOV DPL,R1
    MOV DPH,R0
    FINDB11 : MOVX A,@DPTR
    CJNE A,B,FINDB12
    MOV R1,DPL
    MOV R0,DPH
    CLR A
    RET
    FINDB12 : INC DPTR
    DJNZ R7,FINDB11
    MOV A,#0FFH
    RET
    3楼 回复本楼

    引用 xilinxue 2009/2/13 12:56:32 发表于3楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:56:53


    ;单字节顺序查找程序
    ;入口: R0,R1,A,R6,R7
    ;占用资源: B
    ;堆栈需求: 2字节
    ;出口: R0,R1,A
    FINDB2 : MOV B,A
    MOV DPL,R1
    MOV DPH,R0
    MOV A,R7
    JZ FINDB21
    INC R6
    FINDB21 : MOVX A,@DPTR
    CJNE A,B,FINDB22
    MOV R1,DPL
    MOV R0,DPH
    CLR A
    RET
    FINDB22 : INC DPTR
    DJNZ R7,FINDB21
    DJNZ R6,FINDB21
    MOV A,#0FFH
    RET
    4楼 回复本楼

    引用 xilinxue 2009/2/13 12:56:53 发表于4楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:57:09


    ;双字节字符串顺序查找程序
    ;入口: R0,R1,R3,R4,R7
    ;占用资源: ACC,B
    ;堆栈需求: 2字节
    ;出口: R0,R1,A
    FINDS1 : MOV DPL,R1
    MOV DPH,R0
    FINDS11 : MOVX A,@DPTR
    INC DPTR
    CLR C
    SUBB A,R4
    JNZ FINDS12
    MOVX A,@DPTR
    SUBB A,R3
    JNZ FINDS12
    MOV A,DPL
    CLR C
    SUBB A,#01H
    MOV R1,A
    MOV A,DPH
    SUBB A,#00H
    MOV R0,A
    CLR A
    RET
    FINDS12 : DJNZ R7,FINDS11
    MOV A,#0FFH
    RET
    5楼 回复本楼

    引用 xilinxue 2009/2/13 12:57:09 发表于5楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:57:26


    ;双字节字符串顺序查找程序
    ;入口: R0,R1,R3,R4,R6,R7
    ;占用资源: ACC,B
    ;堆栈需求: 2字节
    ;出口: R0,R1,A
    FINDS2 : MOV DPL,R1
    MOV DPH,R0
    MOV A,R7
    JZ FINDS21
    INC R6
    FINDS21 : MOVX A,@DPTR
    INC DPTR
    CLR C
    SUBB A,R4
    JNZ FINDS22
    MOVX A,@DPTR
    SUBB A,R3
    JNZ FINDS22
    MOV A,DPL
    CLR C
    SUBB A,#01H
    MOV R1,A
    MOV A,DPH
    SUBB A,#00H
    MOV R0,A
    CLR A
    RET
    FINDS22 : DJNZ R7,FINDS21
    DJNZ R6,FINDS21
    MOV A,#0FFH
    RET
    6楼 回复本楼

    引用 xilinxue 2009/2/13 12:57:26 发表于6楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:57:47


    ;N字节字符串顺序查找程序
    ;入口: ADDPH,ADDPL,R0,R6,R7,N
    ;占用资源: ACC,B,R2,NCNT
    ;堆栈需求: 2字节
    ;出口: ADDPH,ADDPL,A
    FINDN: MOV A,R0
    MOV R2,A
    MOV A,ADDPL
    MOV DPL,A
    MOV A,ADDPH
    MOV DPH,A
    MOV A,R7
    JZ FINDN1
    INC R6
    FINDN1 : MOV A,R2
    MOV R0,A
    MOV A,N
    MOV NCNT,A
    FINDN2 : MOVX A,@DPTR
    CLR C
    SUBB A,@R0
    JNZ FINDN3
    INC DPTR
    INC R0
    DJNZ NCNT,FINDN2
    MOV A,DPL
    CLR C
    SUBB A,N
    MOV ADDPL,A
    MOV A,DPH
    SUBB A,#00H
    MOV ADDPH,A
    CLR A
    RET
    FINDN3 : CLR C
    MOV A,R0
    SUBB A,R2
    JNZ FINDN4
    INC DPTR
    FINDN4 : DJNZ R7,FINDN1
    DJNZ R6,FINDN1
    MOV A,#0FFH
    RET
    7楼 回复本楼

    引用 xilinxue 2009/2/13 12:57:47 发表于7楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:58:08


    ;单字节最值查找程序
    ;入口: R0,R1,R6,R7
    ;占用资源: ACC,B
    ;堆栈需求: 2字节
    ;出口: R0(最大值),R1(最小值),R2,R3,R4,R5
    FMAMIB : MOV DPL,R1
    MOV DPH,R0
    MOVX A,@DPTR
    MOV R0,A
    MOV R1,A
    MOV A,DPL
    MOV R3,A
    MOV R5,A
    MOV A,DPH
    MOV R2,A
    MOV R4,A
    MOV A,R7
    JZ FMMB1
    INC R6
    FMMB1: MOVX A,@DPTR
    MOV B,A
    SETB C
    SUBB A,R0
    JC FMMB2
    MOV R0,B
    MOV R3,DPL
    MOV R2,DPH
    SJMP FMMB3
    FMMB2: MOV A,B
    CLR C
    SUBB A,R1
    JNC FMMB3
    MOV R1,B
    MOV R5,DPL
    MOV R4,DPH
    FMMB3: INC DPTR
    DJNZ R7,FMMB1
    DJNZ R6,FMMB1
    RET
    8楼 回复本楼

    引用 xilinxue 2009/2/13 12:58:08 发表于8楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:58:27


    ;浮点数顺序查找程序
    ;入口: R0,R1,R2,R3,R4,R6,R7
    ;占用资源: B,NCNT,FCMP
    ;堆栈需求: 2字节
    ;出口: R0,R1,A
    FINDF: MOV DPL,R1
    MOV DPH,R0
    MOV A,R7
    MOV B,A
    MOV NCNT,R6
    JZ FINDF1
    INC NCNT
    FINDF1 : MOVX A,@DPTR
    INC DPTR
    MOV R5,A
    MOVX A,@DPTR
    INC DPTR
    MOV R6,A
    MOVX A,@DPTR
    INC DPTR
    MOV R7,A
    LCALL FCMP
    JNZ FINDF2
    MOV A,DPL
    CLR C
    SUBB A,#03H
    MOV R1,A
    MOV A,DPH
    SUBB A,#00H
    MOV R0,A
    CLR A
    RET
    FINDF2 : DJNZ B,FINDF1
    DJNZ NCNT,FINDF1
    MOV A,#0FFH
    RET
    9楼 回复本楼

    引用 xilinxue 2009/2/13 12:58:27 发表于9楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:58:57


    ;浮点数最值查找程序
    ;入口: ADDPH,ADDPL,R6,R7
    ;占用资源: ACC,B,NCNT,ITEMOV,EBMOV,MOVB,MOVR1,FCMP
    ;堆栈需求: 5字节
    ;出口: [R0](最大值),[R1](最小值),R2,R3,R4,R5
    FMAMIF : MOV A,ADDPL
    MOV R3,A
    MOV R5,A
    MOV DPL,A
    MOV A,ADDPH
    MOV R2,A
    MOV R4,A
    MOV DPH,A
    MOV B,R7
    MOV R7,#03H
    LCALL ITEMOV
    MOV R7,#03H
    LCALL IBMOV
    MOV A,B
    JZ FMMF1
    INC NCNT
    FMMF1: PUSH B
    MOVX A,@DPTR
    INC DPTR
    MOV R2,A
    MOVX A,@DPTR
    INC DPTR
    MOV R3,A
    MOVX A,@DPTR
    INC DPTR
    MOV R4,A
    LCALL MOVR1
    LCALL FCMP
    JNC FMMF2
    MOV A,R0
    XCH A,R1
    MOV R0,A
    LCALL MOVB
    MOV R5,DPL
    MOV R4,DPH
    MOV A,R0
    XCH A,R1
    MOV R0,A
    SJMP FMMF3
    FMMF2: MOV A,R0
    XCH A,R1
    MOV R0,A
    LCALL MOVR1
    LCALL FCMP
    MOV A,R0
    XCH A,R1
    MOV R0,A
    JZ FMMF3
    JC FMMF3
    LCALL MOVB
    MOV R3,DPL
    MOV R2,DPH
    FMMF3: POP B
    DJNZ B,FMMF1
    DJNZ NCNT,FMMF1
    RET
    10楼 回复本楼

    引用 xilinxue 2009/2/13 12:58:57 发表于10楼的内容

  • xilinxue

    xilinxue   |   当前状态:在线

    总积分:16186  2024年可用积分:0

    注册时间: 2008-06-26

    最后登录时间: 2020-03-22

    空间 发短消息加为好友

    xilinxue   发表于 2009/2/13 12:59:26


    ;单字节折半查找程序
    ;入口: A,R0,R1,R6,R7
    ;占用资源: B,R2
    ;堆栈需求: 2字节
    ;出口: R0,R1
    SEARCHB : MOV B,A
    MOV A,R1
    ADD A,R7
    MOV R7,A
    MOV A,R0
    ADDC A,R6
    MOV R6,A
    MOV A,R7
    SUBB A,#01H
    MOV R7,A
    JNC SECH1
    DEC R6
    SECH1: MOV A,R7
    CLR C
    SUBB A,R1
    MOV A,R6
    SUBB A,R0
    JNC SECH2
    MOV A,#0FFH
    RET
    SECH2: MOV A,R7
    ADD A,R1
    MOV R2,A
    MOV A,R6
    ADDC A,R0
    RRC A
    MOV DPH,A
    MOV A,R2
    RRC A
    MOV DPL,A
    MOVX A,@DPTR
    CLR C
    SUBB A,B
    JNC SECH3
    INC DPTR
    MOV R0,DPH
    MOV R1,DPL
    SJMP SECH1
    SECH3: JZ SECH5
    MOV A,DPL
    SUBB A,#01H
    MOV R7,A
    JNC SECH4
    MOV R6,DPH
    DEC R6
    SECH4: SJMP SECH1
    SECH5: MOV R0,DPH
    MOV R1,DPL
    CLR A
    RET
    11楼 回复本楼

    引用 xilinxue 2009/2/13 12:59:26 发表于11楼的内容

总共 , 当前 /, 12【下一页】