Ayuda, programa en lenguaje ensamblador~~~
ORG 0000H
AJMP PRINCIPAL
ORG 0030H
PRINCIPAL:
MOV 31H,#0 p>
p>
MOV R0, #40H; R0 se usa como puntero de datos RAM en el chip, apuntando a 40H
MOV R2, #16 se usa como contador; , repitiendo 16 veces
CLR A ;A se usa para encontrar la suma acumulativa, inicializada en 0
S0:
ADD A,@R0
JNC NEXT ;¿Hay un acarreo después de la suma? De lo contrario, agregue el acarreo a los 8 bits superiores
PUSH ACC Debido a que la suma MCS51 solo puede usar A como operando de destino, el valor en A; debe protegerse primero
MOV A, 31H
ADDC A,#0 ; significa A+C->A
MOV 31H,A p>
POP ACC
NEXT:
INC R0 ;Modifica el puntero de datos para que apunte a la siguiente unidad
DJNZ R2,S0 ;R2- 1->Si R2 es 0, bucle si no es 0
MOV 30H,A
SJMP $
END