We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

RETI (SPC700): Difference between revisions

From SnesLab
Jump to: navigation, search
(moved tables up)
(linkify interrupt handler)
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
{| class="wikitable" style="float:right;clear:right;width:30%"
{| class="wikitable" style="float:right;clear:right;width:40%"
!colspan="8"|Basic Info
!colspan="8"|Basic Info
|+
|+
Line 7: Line 7:
|'''Speed'''
|'''Speed'''
|+
|+
|implied
|[[Stack Addressing | Stack]]
|7F
|7F
|1 byte
|1 byte
Line 14: Line 14:


{| class="wikitable" style="float:right;clear:right;width:30%"
{| class="wikitable" style="float:right;clear:right;width:30%"
!colspan="8"|Flags Clobbered
!colspan="8"|Flags Affected
|+
|[[Negative Flag|N]]
|[[Overflow Flag|V]]
|[[Direct Page Flag|P]]
|[[Break Flag|B]]
|[[Half-Carry Flag|H]]
|[[Interrupt Enable Flag|I]]
|[[Zero Flag|Z]]
|[[Carry Flag|C]]
|+
|+
|N
|N
Line 24: Line 33:
|Z
|Z
|C
|C
|+
|
|
|
|
|
|
|
|
|}
|}


'''RETI''' (RETurn from Interrupt) is an [[SPC700]] instruction that returns from an interrupt.  All NVPBHIZC flags are restored.
'''RETI''' (RETurn from Interrupt) is an [[SPC700]] instruction that returns from an [[interrupt handler]].  All [[program status word]] flags are popped off the [[stack]] and restored. The [[program counter]] is also popped from the stack.
 
As the S-SMP has no hardware interrupt sources, this generally means returning from a [[BRK (SPC700)|BRK]].
 
==== Syntax ====
<pre>
RETI
</pre>


=== See Also ===
=== See Also ===
* [[EI]]
* [[DI]]
* [[RET]]
* [[RET]]
* [[RTI]]
* [[RTS]]
* [[RTS]]
* [[RTL]]


=== References ===
=== References ===
* [https://archive.org/details/SNESDevManual/book1/page/n234 Appendix C-9 of Book I] of the official Super Nintendo development manual
* Table C-16 in [https://archive.org/details/SNESDevManual/book1/page/n234 Appendix C-9 of Book I] of the official Super Nintendo development manual
* anomie: https://github.com/yupferris/TasmShiz/blob/master/spc700.txt#L547


[[Category:ASM]]
[[Category:ASM]]
[[Category:SPC700]]
[[Category:SPC700]]
[[Category:Subroutine Call Return Commands]]
[[Category:One-byte Instructions]]

Latest revision as of 19:25, 4 August 2024

Basic Info
Addressing Mode Opcode Length Speed
Stack 7F 1 byte 6 cycles
Flags Affected
N V P B H I Z C
N V P B H I Z C

RETI (RETurn from Interrupt) is an SPC700 instruction that returns from an interrupt handler. All program status word flags are popped off the stack and restored. The program counter is also popped from the stack.

As the S-SMP has no hardware interrupt sources, this generally means returning from a BRK.

Syntax

RETI

See Also

References