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

BBC (SPC700): Difference between revisions

From SnesLab
Jump to: navigation, search
(moved tables up)
(more correct admode name)
 
(10 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:50%"
!colspan="8"|Basic Info
!colspan="8"|Basic Info
|+
|+
Line 7: Line 7:
|'''Speed'''
|'''Speed'''
|+
|+
|
|[[Direct Page Bit Relative]]
|y3
|13
|3 byte
|when condition is false: 5 cycles
when condition is true: 7 cycles
|+
|[[Direct Page Bit Relative]]
|33
|3 byte
|when condition is false: 5 cycles
when condition is true: 7 cycles
|+
|[[Direct Page Bit Relative]]
|53
|3 byte
|when condition is false: 5 cycles
when condition is true: 7 cycles
|+
|[[Direct Page Bit Relative]]
|73
|3 byte
|when condition is false: 5 cycles
when condition is true: 7 cycles
|+
|[[Direct Page Bit Relative]]
|93
|3 byte
|when condition is false: 5 cycles
when condition is true: 7 cycles
|+
|[[Direct Page Bit Relative]]
|B3
|3 byte
|when condition is false: 5 cycles
when condition is true: 7 cycles
|+
|[[Direct Page Bit Relative]]
|D3
|3 byte
|when condition is false: 5 cycles
when condition is true: 7 cycles
|+
|[[Direct Page Bit Relative]]
|F3
|3 byte
|3 byte
|when condition is false: 5 cycles
|when condition is false: 5 cycles
Line 15: Line 57:


{| 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 36: Line 78:
|}
|}


'''BBC''' (Branch on Bit Clear) is an [[SPC700]] instruction that performs a branch when the [[direct page flag]] is clear.
'''BBC''' (Branch on Bit Clear) is an [[SPC700]] instruction that performs a branch when a bit in the [[direct page]] is clear.  The index to the direct page byte that bit lives in is the first operand byte.  Which bit within that byte is specified by the top 3 bits of the opcode.  The target relative address to jump to is the second operand byte.
 
In assembly source, the two operands appear in the same order that they do in the instruction stream.


=== See Also ===
=== See Also ===
* [[BBS]]
* [[BBS]]
* [[BBR]]


=== External Links ===
=== External Links ===
* Official Super Nintendo development manual on BBC: [https://archive.org/details/SNESDevManual/book1/page/n234 Appendix C-8 of Book I]
* Official Super Nintendo development manual on BBC: 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 07:54, 18 December 2023

Basic Info
Addressing Mode Opcode Length Speed
Direct Page Bit Relative 13 3 byte when condition is false: 5 cycles

when condition is true: 7 cycles

Direct Page Bit Relative 33 3 byte when condition is false: 5 cycles

when condition is true: 7 cycles

Direct Page Bit Relative 53 3 byte when condition is false: 5 cycles

when condition is true: 7 cycles

Direct Page Bit Relative 73 3 byte when condition is false: 5 cycles

when condition is true: 7 cycles

Direct Page Bit Relative 93 3 byte when condition is false: 5 cycles

when condition is true: 7 cycles

Direct Page Bit Relative B3 3 byte when condition is false: 5 cycles

when condition is true: 7 cycles

Direct Page Bit Relative D3 3 byte when condition is false: 5 cycles

when condition is true: 7 cycles

Direct Page Bit Relative F3 3 byte when condition is false: 5 cycles

when condition is true: 7 cycles

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

BBC (Branch on Bit Clear) is an SPC700 instruction that performs a branch when a bit in the direct page is clear. The index to the direct page byte that bit lives in is the first operand byte. Which bit within that byte is specified by the top 3 bits of the opcode. The target relative address to jump to is the second operand byte.

In assembly source, the two operands appear in the same order that they do in the instruction stream.

See Also

External Links