We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
MERGE (Super FX): Difference between revisions
From SnesLab
(The ALT0 state is restored.) |
(sreg ignored) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 31: | Line 31: | ||
|0 | |0 | ||
|0 | |0 | ||
| | |O/V | ||
| | |S | ||
| | |CY | ||
| | |Z | ||
|} | |} | ||
'''MERGE''' is a [[Super FX]] instruction that merges the high | '''MERGE''' is a [[Super FX]] instruction that merges the high bytes of two specific general registers into the [[destination register]]. | ||
The high byte of | The high byte of D<sub>reg</sub> comes from R<sub>7</sub>. | ||
The low byte of | The low byte of D<sub>reg</sub> comes from R<sub>8</sub>. | ||
The official documentation has several bits labeled "B" not 'D" below the "Flags affected" table.<sup>[1]</sup> | The official documentation has several bits labeled "B" not 'D" below the "Flags affected" table.<sup>[1]</sup> | ||
Line 46: | Line 46: | ||
The [[ALT0]] state is restored. | The [[ALT0]] state is restored. | ||
The destination register should be specified in advance using [[WITH]] or [[TO]]. Otherwise, R<sub>0</sub> serves as the default. | The destination register should be specified in advance using [[WITH]] or [[TO]]. Otherwise, R<sub>0</sub> serves as the default. The [[source register]] is ignored. | ||
==== Syntax ==== | ==== Syntax ==== | ||
Line 67: | Line 67: | ||
* [[HIB]] | * [[HIB]] | ||
* [[LOB]] | * [[LOB]] | ||
* [[SEX]] | |||
=== External Links === | === External Links === |
Latest revision as of 20:23, 30 July 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | ROM Speed | RAM Speed | Cache Speed | ||
Implied (type 1) | 70 | 1 byte | 3 cycles | 3 cycles | 1 cycle |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
B | ALT1 | ALT2 | O/V | S | CY | Z | ||
0 | 0 | 0 | O/V | S | CY | Z |
MERGE is a Super FX instruction that merges the high bytes of two specific general registers into the destination register.
The high byte of Dreg comes from R7. The low byte of Dreg comes from R8.
The official documentation has several bits labeled "B" not 'D" below the "Flags affected" table.[1]
The ALT0 state is restored.
The destination register should be specified in advance using WITH or TO. Otherwise, R0 serves as the default. The source register is ignored.
Syntax
MERGE
Example
Let:
Dreg : R9 R7 = 05aah R8 = fc33h
After executing MERGE:
R9 = 05fch
and the sign, overflow, carry, and zero flags are set
See Also
External Links
- Official Nintendo documentation on MERGE: paragraph 9.56 on page 2-9-79 of Book II
- example: page 2-9-80 of Book II, lbid.