📄 averrage.asm
字号:
junzhi:
mov 60h,62h ;数据组FIFO处理
mov 61h,63h
mov 62h,64h
mov 63h,65h
mov 64h,66h
mov 65h,67h
mov 66h,68h
mov 67h,69h
mov 68h,6ah
mov 69h,6bh
mov 6ah,6ch
mov 6bh,6dh
mov 6ch,6eh
mov 6dh,6fh
mov 6eh,46h
mov 6fh,47h
mov r2,#07h ;8组数据求和,需加6+1=7次
mov r1,#6fh ;数据组的最高该位指针
mov a,@r1
mov r4,a
dec r1
mov a,@r1
mov r5,a
nxtadd: dec r1
mov a,@r1
mov r6,a
dec r1
mov a,@r1
mov r7,a
lcall dadd
djnz r2,nxtadd
mov r2,#03h ;取平均值(/8)
nxtrr: clr c
mov a,r5
rrc a
mov r5,a
mov a,r4
rrc a
mov r4,a
djnz r2,nxtrr
mov 4Ch,r5 ;结果送回4Ch(H),4Dh(L)
mov 4Dh,r4
ret
dadd: ;R5(H)R4(L)+R7(H)R6(L) = R5(H)R4(L);use RAM 4AH,4BH
mov 4ah,r4
mov 4bh,r5
clr c
mov a,r6
add a,4ah
mov 4ah,a
mov a,r7
addc a,4bh
mov 4bh,a
jb cy,loop ;和溢出处理
mov r4,4ah
mov r5,4bh
ret
loop:
mov r4,#0ffh
mov r5,#0ffh
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -