Email or username:

Password:

Forgot your password?
Top-level
Ken Shirriff

Multiplying signed (positive or negative numbers) is more complicated, with more micro-subroutines. This one turns both arguments positive, while tracking the signs in internal flag F1.

6 comments
Ken Shirriff

Multiplication uses a 4-bit hardware loop counter and the special F1 flag. Here's what those features look like on the 8086 die. I removed the metal for this photo to show the silicon and the polysilicon wiring underneath.

Ken Shirriff

Instead of a loop, modern processors use a bunch of adders arranged in a special tree to perform a multiplication in a single clock cycle. The 8086 was very slow in comparison, taking up to 133 clock cycles for a 16-bit multiplication.

Ken Shirriff

For more information on multiplication in the 8086 and lots more microcode analysis, see my latest blog post righto.com/2023/03/8086-multip

vruz

@kenshirriff This is a genuinely excellent post. Thanks Ken!

[DATA EXPUNGED]
Ken Shirriff

@kentindell Some computers, such as the Xerox Alto, let programmers write in microcode, but there are three problems with this. First, writing in microcode is very difficult because it is extremely low-level. Second, if you change the computer's internal architecture, the microcode changes and you need to rewrite it. Finally, rewritable microcode in RAM can have performance problems.

Janne Moren

@kenshirriff

It strikes me how the microcode really isn't very far from what we would call RISC instructions, in scope and complexity. Or plain old 6502 assembler for that matter.

Go Up