Genial aporte
@You are not allowed to view links.
Register or Login. Como pequeñas recomendaciones, para no acceder constantemente a la memoria, lo que podría usar es un registro y a su vez, almacenar el resultado en memoria; como nimiedad mía, lo que puede hacer es que en vez (si su ensamblador le permite) de ajustar el registro
CX con el valor inmediato, disponer de una constante (es lo mismo, pero no en código) o si prefiere (aunque también depende de lo que haga el programa y sus necesidades), es usar una variable que especifique el número de repeticiones; y por último, usar
INC para sumar un solo número y gastar menos bytes.
Aquí le dejo un ejemplo más o menos de lo que dije anteriormente:
; Programa escrito en TASM para sumar todos los números de un arreglo.
MODEL Tiny
DATASEG
lista DB 1,2,3,4 ; es igual a 0A (10, en decimal)
suma DB 0
NREP EQU 4
CODESEG
ORG 100h
start:
LEA SI, lista
LEA DI, suma
MOV CX, nrep
XOR DL, DL
repetir:
MOV AL, [SI]
ADD DL, AL
INC SI
LOOP repetir
MOV [DI], DL
END start
~ DtxdF