We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
JMP (SPC700): Difference between revisions
From SnesLab
(added link to official dev manual) |
(→External Links: added anomie link) |
||
(14 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{| class="wikitable" style="float:right;clear:right;width:40%" | |||
{| class="wikitable" style="float:right;clear:right;width: | |||
!colspan="8"|Basic Info | !colspan="8"|Basic Info | ||
|+ | |+ | ||
Line 9: | Line 7: | ||
|'''Speed''' | |'''Speed''' | ||
|+ | |+ | ||
| | |[[Absolute]] | ||
| | |5F | ||
|3 bytes | |3 bytes | ||
|3 cycles | |3 cycles | ||
|+ | |+ | ||
| | |[[Absolute Indexed by X]] | ||
|1F | |1F | ||
|3 bytes | |3 bytes | ||
Line 21: | Line 19: | ||
{| class="wikitable" style="float:right;clear:right;width:30%" | {| class="wikitable" style="float:right;clear:right;width:30%" | ||
!colspan="8"|Flags | !colspan="8"|Flags Affected | ||
|+ | |+ | ||
|N | |[[Negative Flag|N]] | ||
|V | |[[Overflow Flag|V]] | ||
|P | |[[Direct Page Flag|P]] | ||
|B | |[[Break Flag|B]] | ||
|H | |[[Half-Carry Flag|H]] | ||
|I | |[[Interrupt Enable Flag|I]] | ||
|Z | |[[Zero Flag|Z]] | ||
|C | |[[Carry Flag|C]] | ||
|+ | |+ | ||
|. | |. | ||
Line 41: | Line 39: | ||
|. | |. | ||
|} | |} | ||
'''JMP''' is an [[SPC700]] instruction that performs an unconditional branch. | |||
With absolute addressing, the SPC jumps to the address specified in the two bytes following the 5F opcode. | |||
With absolute indexed by X addressing, the SPC jumps to the effective address specified by the two bytes following the 1F opcode plus the value in the [[X index register]]. | |||
No flags are affected. | |||
==== Syntax ==== | |||
<pre> | |||
JMP !abs | |||
JMP [!abs+X] | |||
</pre> | |||
=== See Also === | |||
* [[BRA (SPC700)]] | |||
* [[BRA]] | |||
=== External Links === | === External Links === | ||
* Official Super Nintendo development manual on JMP: [https://archive.org/details/SNESDevManual/book1/page/ | * Official Super Nintendo development manual on JMP: Table C-15, [https://archive.org/details/SNESDevManual/book1/page/n233 Appendix C-8 of Book I] | ||
* anomie: https://github.com/yupferris/TasmShiz/blob/master/spc700.txt#L454 | |||
[[Category:ASM]] | [[Category:ASM]] | ||
[[Category:SPC700]] | [[Category:SPC700]] | ||
[[Category:Branching Commands]] | [[Category:Branching Commands]] | ||
[[Category:Three-byte Instructions]] |
Latest revision as of 21:56, 13 July 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
Absolute | 5F | 3 bytes | 3 cycles | ||||
Absolute Indexed by X | 1F | 3 bytes | 6 cycles |
Flags Affected | |||||||
---|---|---|---|---|---|---|---|
N | V | P | B | H | I | Z | C |
. | . | . | . | . | . | . | . |
JMP is an SPC700 instruction that performs an unconditional branch.
With absolute addressing, the SPC jumps to the address specified in the two bytes following the 5F opcode.
With absolute indexed by X addressing, the SPC jumps to the effective address specified by the two bytes following the 1F opcode plus the value in the X index register.
No flags are affected.
Syntax
JMP !abs JMP [!abs+X]
See Also
External Links
- Official Super Nintendo development manual on JMP: Table C-15, Appendix C-8 of Book I
- anomie: https://github.com/yupferris/TasmShiz/blob/master/spc700.txt#L454