8086 program to multiply two 16-bit numbers Last Updated : 22 May, 2018 Improve Improve Like Article Like Save Share Report Problem – Write a program to multiply two 16-bit numbers where starting address is 2000 and the numbers are at 3000 and 3002 memory address and store result into 3004 and 3006 memory address. Example – Algorithm – First load the data into AX(accumulator) from memory 3000 Load the data into BX register from memory 3002 Multiply BX with Accumulator AX Move data from AX(accumulator) to memory Move data from DX to AX Move data from AX(accumulator) to memory Stop Program – Memory Mnemonics Operands Comment 2000 MOV AX, [3000] [AX] <- [3000] 2004 MOV BX, [3002] [BX] <- [3002] 2008 MUL BX [AX] <- [AX] * [BX] 200A MOV [3004], AX [3004] <- AX 200E MOV AX, DX [AX] <- [DX] 2010 MOV [3006], AX [3006] <- AX 2014 HLT Stop Explanation – MOV is used to load and store data. MUL is used to multiply two 16-bit numbers. HLT is used to stop the program. AX is an accumulator which is used to store the result. BX, DX are general purpose registers where BX is used for multiplication and DX is used for result. Like Article Suggest improvement Previous 8086 program to subtract two 16 bit BCD numbers Next 8086 program to find sum of Even numbers in a given series Share your thoughts in the comments Add Your Comment Please Login to comment...