We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
BEQ (SPC700): Difference between revisions
From SnesLab
(added link to official dev manual) |
(control falls through) |
||
(16 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{| class="wikitable" style="float:right;clear:right;width:50%" | |||
{| class="wikitable" style="float:right;clear:right;width: | |||
!colspan="8"|Basic Info | !colspan="8"|Basic Info | ||
|+ | |+ | ||
Line 9: | Line 7: | ||
|'''Speed''' | |'''Speed''' | ||
|+ | |+ | ||
| | |[[Program Counter Relative]] | ||
|F0 | |F0 | ||
|2 bytes | |2 bytes | ||
|2 | |when condition false: 2 cycles | ||
when condition true: 4 cycles | |||
|} | |} | ||
{| 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 36: | Line 35: | ||
|. | |. | ||
|} | |} | ||
'''BEQ''' is an [[SPC700]] instruction that performs a branch when the [[zero flag]] is set. If the zero flag is clear, control simply falls through BEQ to the next instruction. | |||
No flags are affected. | |||
==== Syntax ==== | |||
<pre> | |||
BEQ rel | |||
</pre> | |||
Where rel is a two's complement offset. | |||
=== See Also === | === See Also === | ||
* [[BEQ]] | * [[BEQ]] | ||
* [[BNE (SPC700)]] | |||
=== External Links === | === External Links === | ||
* Official Super Nintendo development manual on BEQ: [https://archive.org/details/SNESDevManual/book1/page/ | * Official Super Nintendo development manual on BEQ: 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#L360 | |||
[[Category:ASM]] | [[Category:ASM]] | ||
[[Category:SPC700]] | [[Category:SPC700]] | ||
[[Category:Branching Commands]] | [[Category:Branching Commands]] | ||
[[Category:Two-byte Instructions]] |
Latest revision as of 15:22, 14 August 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
Program Counter Relative | F0 | 2 bytes | when condition false: 2 cycles
when condition true: 4 cycles |
Flags Affected | |||||||
---|---|---|---|---|---|---|---|
N | V | P | B | H | I | Z | C |
. | . | . | . | . | . | . | . |
BEQ is an SPC700 instruction that performs a branch when the zero flag is set. If the zero flag is clear, control simply falls through BEQ to the next instruction.
No flags are affected.
Syntax
BEQ rel
Where rel is a two's complement offset.
See Also
External Links
- Official Super Nintendo development manual on BEQ: Table C-15, Appendix C-8 of Book I
- anomie: https://github.com/yupferris/TasmShiz/blob/master/spc700.txt#L360