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

Program Counter: Difference between revisions

From SnesLab
Jump to: navigation, search
(→‎References: Clark link)
(clarify definition)
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''Program Counter''' (PC) keeps track of which instruction is currently executingIf incremented past FFFFh, it wraps around to zero.
The '''Program Counter''' (PC) points to the next instruction byte to fetch.  On both the [[65c816]] and [[S-SMP]] it is 16 bits wideThe low byte is called PCL and the high byte is called PCH.


The 6502 had 16-bit absolute addressing but only an 8-bit adder, so in [[emulation mode]] branches that cross a page boundary incur a one cycle penalty.
If incremented past FFFFh, it wraps around to zero.<sup>[E&L, page 34]</sup>


On the [[S-SMP]] it is 16 bits wideThe low byte is called PCL and the high byte is called PCH.
The 6502 had 16-bit absolute addressing but only an 8-bit adder, so in [[emulation mode]] branches that cross a page boundary incur a one cycle penalty65c816 native mode has no such penalty because the full 16-bit adder is used.


=== See Also ===
=== See Also ===
Line 11: Line 11:
* [[BRA]]
* [[BRA]]
* [[JMP]]
* [[JMP]]
* [[RTS]]
* [[RTL]]


=== References ===
=== References ===
* [[Eyes & Lichty]] page 33, https://archive.org/details/0893037893ProgrammingThe65816/page/33
* [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/33 page 33]
* subparagraph 8.1.4 on [https://archive.org/details/SNESDevManual/book1/page/n182 page 3-8-4 of Book I] of the official Super Nintendo development manual
* subparagraph 8.1.4 on [https://archive.org/details/SNESDevManual/book1/page/n182 page 3-8-4 of Book I] of the official Super Nintendo development manual
* Pickens, John. http://www.6502.org/tutorials/6502opcodes.html#PC
* Pickens, John. http://www.6502.org/tutorials/6502opcodes.html#PC

Latest revision as of 19:45, 12 November 2024

The Program Counter (PC) points to the next instruction byte to fetch. On both the 65c816 and S-SMP it is 16 bits wide. The low byte is called PCL and the high byte is called PCH.

If incremented past FFFFh, it wraps around to zero.[E&L, page 34]

The 6502 had 16-bit absolute addressing but only an 8-bit adder, so in emulation mode branches that cross a page boundary incur a one cycle penalty. 65c816 native mode has no such penalty because the full 16-bit adder is used.

See Also

References