I wish to design (if not actually build) an ultra-simple "computer" from scratch, just for fun and profit. I'm looking at only a fundamental level of computing power, with only one instruction, such as: "Given two single-digit numbers, output the product." I need three to design 3 things: 1] The algorithm for multiplication - likely in binary. 2] The assembly language that controls how the instructions are executed (store this value here, jump to that storage space, read its value, etc.) 3] The parts themselves: the memory, the input buffer, the output buffer, the logic gate(s). I'm sure I can figure out 1] myself. (Take digit 1, start at rightmost placeholder, logically AND it with itself, proceed to next placeholder, repeat, decrement loop, etc.) What I'd like help with is 2] and 3]. More specifically, how can I find or write the assembly language "programming" that will make this happen? And what physical components are required that I've left out? Registers? Cache?