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

CBNE (SPC700): Difference between revisions

From SnesLab
Jump to: navigation, search
(see also DBNZ)
(→‎External Links: Table C-15)
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''CBNE''' is an [[SPC700]] instruction that performs a comparison between the accumulator and a direct page value and then branches if they are not equal.
{| class="wikitable" style="float:right;clear:right;width:50%"
 
{| class="wikitable" style="float:right;clear:right;width:30%"
!colspan="8"|Basic Info
!colspan="8"|Basic Info
|+
|+
Line 9: Line 7:
|'''Speed'''
|'''Speed'''
|+
|+
|
|[[Direct Page]] / [[Program Counter Relative]]
|2E
|2E
|3 bytes
|3 bytes
|5 or 7 cycles
|when condition is false: 5 cycles
when condition is true: 7 cycles
|+
|+
|
|[[Direct Page Indexed by X]] / [[Program Counter Relative]]
|DE
|DE
|3 bytes
|3 bytes
|6 or 8 cycles
|when condition is false: 6 cycles
when condition is true: 8 cycles
|}
|}


{| 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
|+
|+
|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 41:
|.
|.
|}
|}
'''CBNE''' is an [[SPC700]] instruction that performs a comparison between the [[accumulator]] and a [[direct page]] value and then branches if they are not equal.  The direct page index is the first operand and also the first byte immediately following the opcode, and the relative branch offset is the second operand, the second byte following the opcode.


=== See Also ===
=== See Also ===
* [[DBNZ]]
* [[DBNZ]]
* [[BNE (SPC700)]]


=== External Links ===
=== External Links ===
* Official Super Nintendo development manual on CBNE: [https://archive.org/details/SNESDevManual/book1/page/n234 Appendix C-8 of book I]
* Official Super Nintendo development manual on CBNE: Table C-15, [https://archive.org/details/SNESDevManual/book1/page/n233 Appendix C-8 of book I]


[[Category:ASM]]
[[Category:ASM]]
[[Category:SPC700]]
[[Category:SPC700]]
[[Category:Branching Commands]]
[[Category:Branching Commands]]

Latest revision as of 10:27, 14 December 2023

Basic Info
Addressing Mode Opcode Length Speed
Direct Page / Program Counter Relative 2E 3 bytes when condition is false: 5 cycles

when condition is true: 7 cycles

Direct Page Indexed by X / Program Counter Relative DE 3 bytes when condition is false: 6 cycles

when condition is true: 8 cycles

Flags Affected
N V P B H I Z C
. . . . . . . .

CBNE is an SPC700 instruction that performs a comparison between the accumulator and a direct page value and then branches if they are not equal. The direct page index is the first operand and also the first byte immediately following the opcode, and the relative branch offset is the second operand, the second byte following the opcode.

See Also

External Links