Here is a 32x16 bit code i have made (12345678x1011)
MYCODE SEGMENT
ASSUME cs:MYCODE
ORG 1000h
START: nop
L1: mov ax, cs
mov ds, ax
mov sp, ax
L2: mov ax, 5678h
mov cx, 1011h
L3: MUL cx
mov WORD PTR ds:[5000h],ax
mov bx,dx
L4: mov ax, 1234h
mov cx, 1011h
L5: MUL cx
add ax,bx
mov WORD PTR ds:[5002h],ax
mov WORD PTR ds:[5004h],dx
HLT
L6: mov ah, 4CH
INT 21H
MYCODE ENDS
END START
To get answer i stored first AX in the 5000h & 5001h location and moved DX to BX then on next multiplication i added AX,BX and stored it in 5002h and 5003h and the rest of the DX in 5004h and forward. But I am unable to catch the logic to do 32x32 multiplication and tried to do this code but is wrong output and tried to do hand written math but not able to find the solution The 32x32 i tried is (12345678x12345678)
MYCODE SEGMENT
ASSUME cs:MYCODE
ORG 1000h
START: nop
L1: mov ax, cs
mov ds, ax
mov sp, ax
L2: mov ax, 5678h
mov cx, 5678h
L3: MUL cx
mov WORD PTR ds:[5000h],ax
mov bx,dx
L4: mov ax, 1234h
mov cx, 5678h
L5: MUL cx
add ax,bx
mov WORD PTR ds:[5002h],ax
mov bx,dx
L6: mov ax, 5678h
mov cx, 1234h
L7: MUL cx
add ax,bx
mov WORD PTR ds:[5004h],ax
mov bx,dx
L8: mov ax, 1234h
mov cx, 1234h
L9: MUL cx
add ax,bx
mov WORD PTR ds:[5006h],ax
mov WORD PTR ds:[5008h],dx
HLT
L10: mov ah, 4CH
INT 21H
MYCODE ENDS
END START