Y Index Register: Difference between revisions
(flowed LDY/STY into body) |
(linkify page number) |
||
(One intermediate revision by the same user not shown) | |||
Line 3: | Line 3: | ||
It can be loaded with [[LDY]] and stored to memory with [[STY]]. | It can be loaded with [[LDY]] and stored to memory with [[STY]]. | ||
On the [[S-SMP]] it is always 8 bits wide. On the [[65c816]], it may be 8 or 16 bits wide: | On the [[S-SMP]] it is always 8 bits wide and is called a universal register.<sup>[2]</sup> On the [[65c816]], it may be 8 or 16 bits wide: | ||
* When the [[index register select]] flag is clear, Y is 16 bit | * When the [[index register select]] flag is clear, Y is 16 bit | ||
* When the index register select flag is set, Y is 8 bit | * When the index register select flag is set, Y is 8 bit | ||
Line 16: | Line 16: | ||
[[CPY]] can compare it to something. | [[CPY]] can compare it to something. | ||
=== | === References === | ||
# subparagraph 8.1.3 of [https://archive.org/details/SNESDevManual/book1/page/n182 page 3-8-4 of Book I] of the official Super Nintendo development manual | |||
# paragraph 8.1 CPU Registers on [https://archive.org/details/SNESDevManual/book1/page/n181 page 3-8-3], lbid. | |||
[[Category:SNES Hardware]] | [[Category:SNES Hardware]] |
Latest revision as of 08:01, 7 January 2025
The Y Index Register on 65x processors often holds the current index when iterating over things. It can be incremented or decremented by one with INY or DEY, but there is no instruction to add or subtract more than one. Although INY and DEY can affect the negative flag, the indexed addressing modes always interpret the bit pattern in the Y index register as a non-negative integer.
It can be loaded with LDY and stored to memory with STY.
On the S-SMP it is always 8 bits wide and is called a universal register.[2] On the 65c816, it may be 8 or 16 bits wide:
- When the index register select flag is clear, Y is 16 bit
- When the index register select flag is set, Y is 8 bit
In emulation mode it is always 8 bits wide.
Unlike the X index register, there are no instructions to transfer value of the stack pointer to/from Y.
It is not specified to have any particular value after reset.
It can be pushed to the stack with PHY and pulled with PLY. It can be copied to the accumulator with TYA and made to reflect the accumulator with TAY. It can be copied to X with TYX and made to reflect x with TXY.
CPY can compare it to something.
References
- subparagraph 8.1.3 of page 3-8-4 of Book I of the official Super Nintendo development manual
- paragraph 8.1 CPU Registers on page 3-8-3, lbid.