Es verdad lo que dice MSH.
Pero yo crei que me equivocaba, pense que era la multiplicacion del numero seleccionado por sus predecesores... yo hice un codigo sencillito que lo que es eso... pero lo hice solo para resultados de dos cifras, sin cadenas de textos de presetacion ni nada, obviamente te deje, la variable por si queres modificarla, yo utilizo siempre el EMU8086.. porque esta bueno para inspeccionar los codigos, y ver como trabaja... lo coloco acaabajo.
NAME #FACT#
ORG 100H
JMP INICIO
RESULTADO DW ?, '$'
SUMA Db ?,?, '$'
UNUM DB ?,?,?, '$'
INICIO:
MOV AH, 0
INT 16H
AND AL, 0FH
XOR CX, CX
MOV CL, AL
MOV SI, 0
MOV BL, CL
BUL:
XOR AX, AX
MOV AX, SI
MUL BL
ADD SUMA[0], Al
AAM
ADD AX, 3030H
XCHG AH, AL
MOV RESULTADO[0], AX
MOV AH, 9
LEA DX, RESULTADO[0]
INT 21H
MOV AH, 2
MOV DL, 0AH
INT 21H
MOV DL, 0DH
INT 21H
INC SI
LOOP BUL
XOR AX, AX
MOV AL, SUMA[0]
MOV BL, 0ah
DIV BL
ADD AX, 3030H
MOV UNUM[2], AH
MOV UNUM[1], AL
ADD UNUM[0], 00H
LEA DX, UNUM
MOV AH, 9
INT 21H
RET