文章编号:656----加入日期:2003-9-17
『关闭窗口』
汇编程序库,老牌的(1)(dhd0)
;片内RAM初始化子程序
IBCLR :MOV A,R0
MOV R1,A
CLR A
IBC1 :MOV @R1,A
INC R1
DJNZ R7,IBC1
RET
;片外RAM初始化子程序
EBCLR1 :MOV A,ADDPL
MOV DPL,A
MOV A,ADDPH
MOV DPH,A
CLR C
EBC11 :MOVX @DPTR,A
INC DPTR
DJNZ R7,EBC11
RET
;片外RAM初始化子程序(双字节个单元)
EBCLR2 :MOV A,ADDPL
MOV DPL,A
MOV A,ADDPH
MOV DPH,A
MOV A,R7
JZ EBC21
INC R6
EBC21 :CLR A
MOVX @DPTR,A
INC DPTR
DJNZ R7,EBC21
DJNZ R6,EBC21
RET
;内部RAM数据复制程序
;入口 :R0,R7
;占用资源:A
;堆栈需求:2字节
;出口 :R1
IBMOV :MOV A,R0
ADD A,R7
MOV R0,A
MOV A,R1
ADD A,R7
MOV R1,A
IBM1 :DEC R0
DEC R1
MOV A,@R0
MOV @R1,A
DJNZ R7,IBM1
RET
;外部RAM数据复制程序
;入口 :ADDPH,ADDPL,R7
;占用资源:ACC
;堆栈需求:2字节
;出口 :R0,R1
EBMOV1 :MOV A,ADDPL
ADD A,R7
MOV DPL,A
CLR A
ADDC A,ADDPH
MOV DPH,A
MOV A,R7
ADD A,R1
XCH A,R0
ADDC A,#00H
MOV P2,A
EBM11 :DEC R0
CJNE R0,#0FFH,EBM12
DEC P2
EBM12 :DEC DPL
MOV A,DPL
CJNE A,#0FFH,EBM13
DEC DPH
EBM13 :MOVX A,@R0
MOVX @DPTR,A
DJNZ R7,EBM11
RET
;外部RAM数据复制程序
;入口 :ADDPH,ADDPL,R6,R7
;占用资源:ACC
;堆栈需求:2字节
;出口 :R0,R1
EBMOV2 :MOV A,ADDPL
ADD A,R7
MOV DPL,A
MOV A,R6
ADDC A,ADDPH
MOV DPH,A
MOV A,R7
ADD A,R1
XCH A,R0
ADDC A,R6
MOV P2,A
MOV A,R7
JZ EBM21
INC R6
EBM21 :DEC R0
CJNE R0,#0FFH,EBM22
DEC P2
EBM22 :DEC DPL
MOV A,DPL
CJNE A,#0FFH,EBM23
DEC DPH
EBM23 :MOVX A,@R0
MOVX @DPTR,A
DJNZ R7,EBM21
DJNZ R6,EBM21
RET
;外部RAM数据复制到内部RAM程序
;入口 :ADDPH,ADDPL,R7
;占用资源:ACC
;堆栈需求:2字节
;出口 :R0
ITEMOV :MOV A,ADDPL
ADD A,R7
MOV DPL,A
MOV A,ADDPH
ADDC A,#00H
MOV DPH,A
MOV A,R0
ADD A,R7
MOV R0,A
ITEM1 :DEC R0
DEC DPL
MOV A,DPL
CJNE A,#0FFH,ITEM2
DEC DPH
ITEM2 :MOVX A,@DPTR
MOV @R0,A
DJNZ R7,ITEM1
RET
;限幅滤波程序
;入口 :A,SDAT,DELTY
;占用资源:B
;堆栈需求:2字节
;出口 :A
JUGFILT :MOV B,A
CLR C
SUBB A,SDAT
JNC JUGFT1
CPL A
INC A
JUGFT1 :SETB A
SUBB A,#DELTY
JNC JUGFT3
MOV A,SDAT
RET
JUGFT3 :MOV A,B
MOV SDAT,A
RET
;中位值滤波程序
;入口 :ADDPH,ADDPL,N
;占用资源:ESELSORT
;堆栈需求:4字节
;出口 :A
MEDFILT :LCALL ESELSORT
MOV A,N
CLR C
RRC A
ADD A,ADDPL
MOV DPL,A
MOV A,ADDPH
MOV DPH,A
JNC MEDFT1
INC DPH
MEDFT1 :MOVX A,@DPTR
RET
;N点算术平均滤波
;入口 :ADDPH,ADDPL,N
;占用资源:B,R3,R4
;堆栈需求:2字节
;出口 :A
AVFILT :MOV A,ADDPL
MOV DPL,A
MOV A,ADDPH
MOV DPH,A
CLR A
MOV R3,A
MOV R4,A
MOV R7,N
AVFT1 :MOVX A,@DPTR
INC DPTR
ADD A,R4
MOV R4,A
JNC AVFT2
INC R3
AVFT2 :DJNZ R7,AVFT1
MOV R7,N
MOV R2,#00H
LCALL NDIV31
MOV A,R4
RET
;N点加权平均滤波
;入口 :ADDPH,ADDPL,N
;占用资源:B,R3,R4
;堆栈需求:2字节
;出口 :A
QAVFILT :CLR A
MOV R3,A
MOV R4,A
MOV R7,N
MOV P2,ADDPH
MOV R1,ADDPL
MOV DPTR,#QAVTAB
QAVFT1 :MOVC A,@A+DPTR
MOV B,A
MOVX A,@R1
INC DPTR
INC R1
MUL AB
ADD A,R4
MOV R4,A
MOV A,B
ADDC A,R3
MOV R3,A
DJNZ R7,QAVFT1
MOV A,R4
JNB ACC.7,QAVFT2
INC R3
QAVFT2 :MOV A,R3
RET
QAVTAB :DB
;一阶加权滞后滤波程序
;入口 :A,DELTY
;占用资源:B,R3,R4
;堆栈需求:2字节
;出口 :A
BQFILT :MOV B,A
CLR A
MOV DPTR,#ABTAB
MOVC A,@A+DPTR
MUL AB
MOV R4,A
MOV R3,B
MOV A,#01H
MOVC A,@A+DPTR
MOV B,DELTY
MUL AB
ADD A,R4
MOV R4,A
MOV A,B
ADDC A,R3
MOV R3,A
MOV A,R4
JNB ACC.7,FT1
INC R3
FT1 :MOV A,R3
MOV DELTY,A
RET
BQTAB :DB 80H,80H
;双字节取补程序 /(R3R4)=(R3R4)
;入口 :R3,R4
;占用资源:ACC
;堆栈需求:2字节
;出口 :R3,R4
CMPT :MOV A,R4
CPL A
ADD A,#01H
MOV R4,A
MOV A,R3
CPL A
ADDC A,#00H
MOV R3,A
RET
;N节取补程序 /([R0])=([R0])
;入口 :R0,R7
;占用资源:ACC,B
;堆栈需求:2字节
;出口 :R0
NCMPTN :MOV B,R0
SETB C
NCPT1 :MOV A,@R0
CPL A
ADDC A,#00H
MOV @R0,A
INC R0
DJNZ R7,NCPT1
MOV R0,B
RET
;双字节无符号数加法程序 (R3R4+R6R7)=(R3R4)
;入口 :R3,R4,R6,R7
;占用资源:ACC
;堆栈需求:2字节
;出口 :R3,R4,CF
NADD :MOV A,R4
ADD A,R7
MOV R4,A
MOV A,R3
ADDC A,R6
MOV R3,A
RET
;N字节无符号数加法程序 ([R0]+[R1])=([R0])
;入口 :R0,R1,R7
;占用资源:ACC,B
;堆栈需求:2字节
;出口 :R0,CF
NADDN :MOV B,R0
CLR C
NADN1 :MOV A,@R0
ADDC A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R7,NADN1
MOV R0,B
RET
;双字节无符号数减法程序 (R3R4-R6R7)=(R3R4)
;入口 :R3,R4,R6,R7
;占用资源:ACC
;堆栈需求:2字节
;出口 :R3,R4
NSUB :MOV A,R4
CLR C
SUBB A,R7
MOV R4,A
MOV A,R3
SUBB A,R6
MOV R3,A
RET
;N字节无符号数减法程序 ([R0]-[R1])=([R0])
;入口 :R0,R1,R7
;占用资源:ACC,B
;堆栈需求:2字节
;出口 :R0,CF
NSUBN :MOV B,R0
MOV R7,N
CLR C
NSUBN1 :MOV A,@R0
SUBB A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R7,NSUBN1
MOV R0,B
RET
;单字节无符号数乘法程序 (R3R4*R7)=(R2R3R4)
;入口 :R3,R4,R7
;占用资源:ACC,B
;堆栈需求:2字节
;出口 :R2,R3,R4
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
asm.rar_汇编程序
版权申诉
133 浏览量
2022-09-21
03:54:51
上传
评论
收藏 2KB RAR 举报
寒泊
- 粉丝: 74
- 资源: 1万+