;入口: R0(起始地址),N(数据个数)
;占用资源: ACC,B,R5,R6,R7
;堆栈需求: 2字节
;出口: R0
ISELSORT : MOV R7,N
DEC R7
ISST1: MOV A,R7
MOV R6,A
MOV A,R0
MOV R1,A
MOV R2,A
MOV B,@R1
ISST2: INC R1
MOV A,@R1
CLR C
SUBB A,B
JC ISST3
MOV A,R1
MOV R2,A
MOV B,@R1
ISST3: DJNZ R6,ISST2
MOV A,B
XCH A,@R1
MOV B,R2
MOV R1,B
MOV @R1,A
DJNZ R7,ISST1
RET
-
-
xilinxue 发表于 2009/2/13 13:00:31
;辛普生积分程序
;入口: 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
引用 xilinxue 2009/2/13 13:00:31 发表于2楼的内容
-
-
xilinxue 发表于 2009/2/13 13:00:48
;内部RAM数据排序程序(升序)
;入口: R0(起始地址),N(数据个数)
;占用资源: ACC,B,R5,R6,R7
;堆栈需求: 2字节
;出口: R0
ISELSORT : MOV R7,N
DEC R7
ISST1: MOV A,R7
MOV R6,A
MOV A,R0
MOV R1,A
MOV R2,A
MOV B,@R1
ISST2: INC R1
MOV A,@R1
CLR C
SUBB A,B
JC ISST3
MOV A,R1
MOV R2,A
MOV B,@R1
ISST3: DJNZ R6,ISST2
MOV A,B
XCH A,@R1
MOV B,R2
MOV R1,B
MOV @R1,A
DJNZ R7,ISST1
RET
引用 xilinxue 2009/2/13 13:00:48 发表于3楼的内容
-
-
xilinxue 发表于 2009/2/13 13:01:04
;外部RAM数据排序程序(升序)
;入口: ADDPH,ADDPL(起始地址),N(数据个数)
;占用资源: ACC,B,R0,R1,R5,R7
;堆栈需求: 2字节
;出口: ADDPH-ADDPL
C_ESELSORT_HANDLE:
MOV R7,N
DEC R7
C_ESELSORT_HANDLE_1:
MOV A,R7
MOV R6,A
MOV DPL,ADDPL
MOV R1,DPL
MOV DPH,ADDPH
MOV R0,DPH
MOVX A,@DPTR
MOV B,A
C_ESELSORT_HANDLE_2:
INC DPTR
MOVX A,@DPTR
CLR C
SUBB A,B
JC C_ESELSORT_HANDLE_3
MOV R0,DPL
MOV R1,DPH
MOVX A,@DPTR
MOV B,A
C_ESELSORT_HANDLE_3:
DJNZ R6,C_ESELSORT_HANDLE_2
MOVX A,@DPTR
XCH A,B
MOVX @DPTR,A
MOV DPL,R0
MOV DPH,R1
MOV A,B
MOVX @DPTR,A
DJNZ R7,C_ESELSORT_HANDLE_1
RET
引用 xilinxue 2009/2/13 13:01:04 发表于4楼的内容
-
-
xilinxue 发表于 2009/2/13 13:01:21
;外部RAM浮点数排序程序(升序)
;入口: ADDPH,ADDPL(起始地址),N(数据个数)
;占用资源: ACC,B,R0,R1,R2,R3,R4,R5,R6,R7,NCNT
;堆栈需求: 5字节
;出口: ADDPH,ADDPL
FSORT: MOV A,N
MOV NCNT,A
DEC NCNT
FST1 : MOV B,NCNT
MOV DPL,ADDPL
MOV R1,DPL
MOV DPH,ADDPH
MOV R0,DPH
MOVX A,@DPTR
MOV R2,A
INC DPTR
MOVX A,@DPTR
MOV R3,A
INC DPTR
MOVX A,@DPTR
MOV R4,A
FST2 : INC DPTR
MOVX A,@DPTR
MOV R5,A
INC DPTR
MOVX A,@DPTR
MOV R6,A
INC DPTR
MOVX A,@DPTR
MOV R7,A
PUSH B
LCALL FCMP
POP B
JNC FST4
MOV A,DPL
CLR C
SUBB A,#02H
MOV R1,A
MOV R0,DPH
JNC FST3
DEC R0
FST3 : MOV A,R5
MOV R2,A
MOV A,R6
MOV R3,A
MOV A,R7
MOV R4,A
FST4 : DJNZ B,FST2
MOV A,DPL
CLR C
SUBB A,#02H
MOV DPL,A
JNC FST5
DEC DPH
FST5 : MOV A,R2
MOVX @DPTR,A
INC DPTR
MOV A,R3
MOVX @DPTR,A
INC DPTR
MOV A,R4
MOVX @DPTR,A
MOV A,R0
MOV P2,A
MOV A,R5
MOVX @R1,A
INC R1
MOV A,R6
MOVX @R1,A
INC R1
MOV A,R7
MOVX @R1,A
DJNZ NCNT,FST1
RET
引用 xilinxue 2009/2/13 13:01:21 发表于5楼的内容
-
引用 疯狂太少 2009/2/13 16:14:58 发表于6楼的内容
-
引用 lthlycyj 2009/4/6 22:28:12 发表于7楼的内容
-
引用 wygtong 2009/6/15 14:33:53 发表于8楼的内容
-
引用 jhlu3 2009/6/17 17:22:13 发表于9楼的内容
-
引用 sdjntl 2009/6/27 17:40:14 发表于10楼的内容