Red de conocimiento informático - Conocimiento informático - Ayuda, programa en lenguaje ensamblador~~~

Ayuda, programa en lenguaje ensamblador~~~

ORG 0000H

AJMP PRINCIPAL

ORG 0030H

PRINCIPAL:

MOV 31H,#0

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

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