ทำการคูณเลข
หรือ
| Iteration | Step | Multiplier | Multiplicand | Product | ||
| 0 | Initial Values | 0011 | 0000 0010 | 0000 0000 | ||
| 1 | 1a: 1->Product = Product + Mcant | 0011 | 0000 0010 | 0000 0010 | ||
| 2: Shift left Multiplicand | 0011 | 0000 0100 | 0000 0010 | |||
| 3: Shift right Multiplier | 0001 | 0000 0100 | 0000 0010 | |||
| 2 | 1a: 1->Product = Product + Mcant | 0001 | 0000 0010 | 0000 0110 | ||
| 2: Shift left Multiplicand | 0001 | 0000 1000 | 0000 0110 | |||
| 3: Shift right Multiplier | 0000 | 0000 1000 | 0000 0110 | |||
| 3 | 1: 0->No Operation | 0000 | 0000 1000 | 0000 0110 | ||
| 2: Shift left Multiplicand | 0000 | 0001 0000 | 0000 0110 | |||
| 3: Shift right Multiplier | 0000 | 0001 0000 | 0000 0110 | |||
| 4 | 1: 0->No Operation | 0000 | 0001 0000 | 0000 0110 | ||
| 2: Shift left Multiplicand | 0000 | 0010 0000 | 0000 0110 | |||
| 3: Shift right Multiplier | 0000 | 0010 0000 | 0000 0110 | |||
เราสามารถออกแบบฮาร์ดแวร์ที่ทำการคูณ ให้สามารถคูณได้รวดเร็วขึ้นโดยการเพิ่มฮาร์ดแวร์สำหรับการบวกในแต่ละบิตของตัวคูณ โดยที่ทำการบวกตัวตั้งที่ทำการ AND กับบิตของตัวคูณ และผลลัพธ์ของตัวคูณก่อนหน้า ดังแสดงในรูป 3.8
ในคอมพิวเตอร์ MIPS มีคำสั่งสำหรับการคูณดังต่อไปนี้ multiply (mult) และ multiply unsigned (multu) คำสั่ง move from lo (mflo) เป็นการเรียกค่าผลลัพธ์ 32 บิต และ คำสั่ง mflo และ mfhi เป็นคำสั่งที่จะนำค่าผลลัพธ์เก็บไว้ในรีจีสเตอร์ที่ต้องการ