We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
BMI (Super FX): Difference between revisions
From SnesLab
(B Flag linkify) |
(→Syntax: what e can be) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{| class="wikitable" style="float:right;clear:right;width: | {| class="wikitable" style="float:right;clear:right;width:50%" | ||
!colspan="8"|Basic Info | !colspan="8"|Basic Info | ||
|+ | |+ | ||
|'''Addressing Mode''' | |||
|'''Opcode''' | |'''Opcode''' | ||
|'''Length''' | |'''Length''' | ||
Line 8: | Line 9: | ||
|'''Cache Speed''' | |'''Cache Speed''' | ||
|+ | |+ | ||
|[[Program Counter Relative]] | |||
|0B?? | |0B?? | ||
|2 bytes | |2 bytes | ||
Line 22: | Line 24: | ||
|[[ALT2]] | |[[ALT2]] | ||
|[[O/V]] | |[[O/V]] | ||
|S | |[[Sign Flag|S]] | ||
|[[CY]] | |[[CY]] | ||
|Z | |[[Zero Flag|Z]] | ||
|+ | |+ | ||
|. | |. | ||
Line 35: | Line 37: | ||
|} | |} | ||
'''BMI''' (Branch | '''BMI''' (Branch Minus) is a [[Super FX]] instruction that performs a conditional jump if the [[sign flag]] is set. If the sign flag is clear, control simply falls through. The instruction after BMI is already in the pipeline and will run even if the branch occurs. | ||
No flags are affected. | No flags are affected. | ||
==== Syntax ==== | |||
<pre> | |||
BMI e | |||
</pre> | |||
where e can be from -128 to 127. | |||
==== Example ==== | |||
Let the sign flag be set. This instruction jumps the program forward 5 bytes: | |||
<pre> | |||
BMI $+5h | |||
</pre> | |||
=== See Also === | === See Also === | ||
Line 44: | Line 58: | ||
=== External Links === | === External Links === | ||
* Official Nintendo documentation on BMI: [https://archive.org/details/SNESDevManual/book2/page/n182 | * Official Nintendo documentation on BMI: paragraph 9.21 on [https://archive.org/details/SNESDevManual/book2/page/n182 page 2-9-26 of Book II] | ||
* example: [https://archive.org/details/SNESDevManual/book2/page/n183 page 2-9-27], lbid. | * example: [https://archive.org/details/SNESDevManual/book2/page/n183 page 2-9-27], lbid. | ||
Line 50: | Line 64: | ||
[[Category:Super FX]] | [[Category:Super FX]] | ||
[[Category:ASM]] | [[Category:ASM]] | ||
[[Category:Instructions with Delay Slots]] |
Latest revision as of 08:34, 14 July 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | ROM Speed | RAM Speed | Cache Speed | ||
Program Counter Relative | 0B?? | 2 bytes | 6 cycles | 6 cycles | 2 cycles |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
B | ALT1 | ALT2 | O/V | S | CY | Z | ||
. | . | . | . | . | . | . |
BMI (Branch Minus) is a Super FX instruction that performs a conditional jump if the sign flag is set. If the sign flag is clear, control simply falls through. The instruction after BMI is already in the pipeline and will run even if the branch occurs.
No flags are affected.
Syntax
BMI e
where e can be from -128 to 127.
Example
Let the sign flag be set. This instruction jumps the program forward 5 bytes:
BMI $+5h
See Also
External Links
- Official Nintendo documentation on BMI: paragraph 9.21 on page 2-9-26 of Book II
- example: page 2-9-27, lbid.