SPARC Assembly/Multiplication and Division
Looking through the lists of instructions, it becomes clear that multiplication and division operations are not provided in SPARC: at least not in a form that most programmers are familiar with. This page is going to discuss the algorithms used to perform multiplication and division operations in SPARC
Overview of the Multiplication Algorithm
The SPARC Implementation of the Multiplication Algorithm
Overview of the Division Algorithm
The SPARC Implementation of the Division Algorithm
Example
To multiply %l3 and %l4 and store in %l5:
| mov | %l3 | %o0 | ! First operand |
| mov | %l4 | %o1 | ! Second operand |
| call | .mul | ! Result stored in %o0 | |
| ! To divide %l3 by %l4, use .div | |||
| ! To find the remainder, use .rem | |||
| nop | ! Delay slot | ||
| mov | %o0 | %l5 | ! Copy result to %l5 |