程序如下:
MOV R0, #30H ;設定數據起始地址
MOV R1, #8 ;***有8字節,將循環相加8次
MOV R2, #0 ;R2 R3清零
MOV R3, #0
LOOP:
MOV A, @R0 ;取來壹個數字
ADD A, R3 ;和低8位相加
MOV R3, A
JNC QQQ ;無進位轉移
INC R2 ;有則高8位加壹
QQQ:
INC R0 ;修改地址指針
DJNZ R1, LOOP ;循環8次
;至此,求和完畢,和數在R2R3中。
;下面,要對和數除以8,求得平均值。
;除以8,可以編寫壹段16位數除以8位數的程序!
;也可以把這16位數,右移3位,也相當於除以8。
;下面,僅僅使用了5條指令,就完成了這個除以8的任務。
ANL A, #0F8H
ADD A, R2
RL A
SWAP A
MOV 40H, A ;按照要求,把平均值存40H
SJMP $
END