📄 average.asm
字号:
;************************************
; 求平均值子程序 *
; 用在一般的软件滤波 *
;************************************
; 这个程序可以用于8位平均 *
; 数据的个数可以自己定义 *
; 修改宏的定义就可以实现 *
;************************************
;程序包括:多个数的求和与数据的平均 *
;************************************
;单元分配:30H存储待处理的数据首地址*
; 38H,39H存放和 *
; 3AH存放平均值 *
; 3B~3FH做其他用途 *
;************************************
;
AVERDAT EQU 30H ;待处理初始值存放单元
AVERRES DATA 3AH ;平均值单元
AVERSUNL DATA 39H ;和的低字节
AVERSUNH DATA 38H ;和的高字节
AVERRESIDUAL DATA 3BH ;余数
AVERCOUNT EQU 8 ;数据处理个数
ORG 0000H
SJMP AVER
AVER: MOV A,#0
MOV AVERSUNL,A
MOV AVERSUNH,A
MOV AVERRES,A
MOV R7,#AVERCOUNT
MOV R0,#AVERDAT
AVERSUN:CLR C
MOV A,@R0
ADD A,AVERSUNL
MOV AVERSUNL,A
CLR A
ADDC A,AVERSUNH
MOV AVERSUNH,A
INC R0
DJNZ R7,AVERSUN
PUSH AVERSUNL
PUSH AVERSUNH
AVER0: MOV R7,#3
AVER1: CLR C
MOV A,AVERSUNH
RRC A
MOV AVERSUNH,A
MOV A,AVERSUNL
RRC A
MOV AVERSUNL,A
MOV A,AVERRESIDUAL
RRC A
MOV AVERRESIDUAL,A
DJNZ R7,AVER1
MOV A,AVERSUNL
MOV AVERRES,A
POP AVERSUNH
POP AVERSUNL
MOV A,AVERRESIDUAL
SWAP A
RRC A
MOV AVERRESIDUAL,A
STEP: SJMP $
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -