How would I go about...
multiplying two 64-bit numbers
multiplying two 16-digit hexadecimal numbers
...using Assembly Language.
I'm only allowed to use registers %eax, %ebx, %ecx, %edx, and the stack.
EDIT: Oh, I'm using ATT Syntax on the x86
EDIT2: Not allowed to decompile into assembly...
Use what should probably be your course textbook, Randall Hyde's "The Art of Assembly Language".
See 4.2.4 - Extended Precision Multiplication
Although an 8x8, 16x16, or 32x32 multiply is usually sufficient, there are times when you may want to multiply larger values together. You will use the x86 single operand MUL and IMUL instructions for extended precision multiplication ..
Probably the most important thing to remember when performing an extended precision multiplication is that you must also perform a multiple precision addition at the same time. Adding up all the partial products requires several additions that will produce the result. The following listing demonstrates the proper way to multiply two 64 bit values on a 32 bit processor ..
(See the link for full assembly listing and illustrations.)