We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
LMULT (Super FX): Difference between revisions
From SnesLab
(blurb about specifying sreg/dreg in advance) |
|||
Line 44: | Line 44: | ||
If R<sub>4</sub> is specified as the destination register, the product will be invalid.<sup>[1]</sup> | If R<sub>4</sub> is specified as the destination register, the product will be invalid.<sup>[1]</sup> | ||
The source and destination registers should be specified in advance using [[WITH]], [[FROM]], or [[TO]]. Otherwise, R<sub>0</sub> serves as the default. | |||
==== Syntax ==== | ==== Syntax ==== |
Revision as of 18:46, 9 July 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | ROM Speed | RAM Speed | Cache Speed | ||
Implied (type 1) | 3D9F | 2 bytes | 10 or 14 cycles | 10 or 14 cycles | 5 or 9 cycles |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
B | ALT1 | ALT2 | O/V | S | CY | Z | ||
0 | 0 | 0 | . |
LMULT is a signed multiplication Super FX instruction. The factors are the source register and R6. The exact speed depends on the state of the CFGR register.
LMULT utilizes the 8-bit multiplier four times.[3]
LMULT shares its multiplication circuit with FMULT.
If R4 is specified as the destination register, the product will be invalid.[1]
The source and destination registers should be specified in advance using WITH, FROM, or TO. Otherwise, R0 serves as the default.
Syntax
LMULT
Example
Let:
Sreg : R9 Dreg : R8 R9 = b556h R6 = daabh
After LMULT is executed:
R8 = 0ae3h R4 = 5c72h
See Also
External Links
- Official Nintendo documentation on LMULT: 9.52 on page 2-9-73 of Book II
- example: page 2-9-74 of Book II, lbid.
- page 2-8-16 of Book II, lbid.