I implemented the multiplication of two big integer in emu8086 with code as below :
; MULTIPLY N1 * N2 = RES
MULTIPLY PROC
MOV BH, 0H
I solved my problem with changing my code as below :
NORMALIZE PROC
MOV CH, 0H
MOV CL, L1
ADD CL, L2
DEC CX
NOMRALIZE_LOOP:
MOV BX, CX
DEC BX
MOV AL, RES[BX]
MOV AH, 1H
MUL AH
AAM
MOV RES[BX], AL
ADD RES[BX-1], AH
LOOP NOMRALIZE_LOOP
RET
NORMALIZE ENDP
; MULTIPLY N1 * N2 = RES
MULTIPLY PROC
MOV CH, 0H
MOV CL, L1
MOV AL, '0'
MOV BH, 0H
SUB_N1:
MOV BL, CL
DEC BL
SUB N1[BX], AL
LOOP SUB_N1
MOV CL, L2
SUB_N2:
MOV BL, CL
DEC BL
SUB N2[BX], AL
LOOP SUB_N2
MOV CH, 0H
MOV CL, L1
MUL_1:
MOV COUNTER, CL
MOV CL, L2
MUL_2:
MOV BH, 0H
MOV BL, COUNTER
DEC BL
MOV AL, N1[BX]
MOV BL, CL
DEC BL
MUL N2[BX]
AAM
MOV BH, 0H
MOV BL, COUNTER
ADD BX, CX
DEC BX
DEC BX
ADD RES[BX], AL
ADC RES[BX-1], AH
ADC RES[BX-2], 0H
LOOP MUL_2
MOV CL, COUNTER
LOOP MUL_1
RET
MULTIPLY ENDP
I changed the multiplication and storing numbers with AAM function. At the end, i add NORMALIZE function to convert result to decimal. :)
Hope others can use it :)