ARM > Introduction to ARM > Multiply Instructions
Previous topic:
Conditional Execution
Next topic:
Single Register Data Transfer
iOS Wedding Vector Trace Toy Toolbar Tip The Great Escape TargetedOptimisation Spectrum Slide Site Sinclair Simpsons Script Risc PC Reverse Engineering Retro Recreation RISC OS QuickFiler Python Project PrivateEye Pixel Art PhotoFiler Optimisation Ocean MotionMasks Logo Links LEGO Iyonix Isometric IntroductionToARM Hardware Hard Disc Groening GitHub Geminus Game Futurama Electron EfficientC Dump Doodle Disenchantment Disassembly Containers Chase H.Q. Blog Blender BasicOptimisation BBC Micro Article Archimedes Aha Acorn ARM 3D 2D
<operation>{cond}{S} Rd, Rm, Rs {, Rn}<operation>
MUL – Multiply
MLA – Multiply with Accumulate
The multiply instructions produce the same result for both signed and unsigned values.
Historical note: Prior to ARMv4 specifying the same register for Rd and Rm had potentially unpredictable results.
<operation>{cond}{S} RdLo, RdHi, Rm, Rs64-bit result output into two registers.
<operation>
UMULL – Unsigned Multiply Long
UMLAL – Unsigned Multiply with Accumlate Long
SMULL – Signed Multiply Long
SMLAL – Signed Multiply with Accumlate Long
Note that they have the same form, but they treat the sign bit differently.