We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
Index Register Select: Difference between revisions
From SnesLab
(started list of affected instructions) |
(clarify SEP/REP/PLP) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
'''Index Register Select''' (X) is a flag in the [[processor status register]] (bit 4) of the [[65c816]]. It indicates how wide the [[index register]]s are: | '''Index Register Select''' (X) is a flag in the [[processor status register]] (bit 4) of the [[65c816]]. It indicates how wide the [[index register]]s are: | ||
* When clear, both index registers are 16 bits wide. | * When clear, both index registers are 16 bits wide. It can only be clear in [[native mode]]. | ||
* When set, both index registers are 8 bits wide. | * When set or in [[emulation mode]], both index registers are 8 bits wide. | ||
It is not possible to control the width of the two index registers individually. | It is not possible to control the width of the two index registers individually. | ||
Line 8: | Line 8: | ||
It can be affected by: | It can be affected by: | ||
* [[REP]] ( | * [[REP]] (clears it if bit 4 of operand is set) | ||
* [[SEP]] ( | * [[SEP]] (sets it if bit 4 of operand is set) | ||
* [[PLP]] | * [[PLP]] (pops it off the [[stack]]) | ||
* [[RTI]] | * [[RTI]] | ||
It affects the behavior of (incomplete list): | It affects the behavior of (possibly incomplete list): | ||
* [[LDX]] | * [[LDX]] | ||
* [[LDY]] | * [[LDY]] | ||
* [[STX]] | * [[STX]] | ||
* [[STY]] | * [[STY]] | ||
* [[CPX]] | |||
* [[CPY]] | |||
* [[PHX]] | |||
* [[PHY]] | |||
* [[PLX]] | |||
* [[PLY]] | |||
* [[INX]] | |||
* [[INY]] | |||
* [[DEX]] | |||
* [[DEY]] | |||
* [[TXY]] | * [[TXY]] | ||
* [[TYX]] | * [[TYX]] | ||
* [[TXS]] | |||
* [[TSX]] | |||
In [[emulation mode]], the x flag becomes the [[break flag]]. | In [[emulation mode]], the x flag becomes the [[break flag]]. | ||
Line 27: | Line 39: | ||
=== See Also === | === See Also === | ||
* [[Memory/Accumulator Select]] | * [[Memory/Accumulator Select]] | ||
* [[X Index Register]] | |||
* [[Y Index Register]] | |||
=== Reference === | === Reference === |
Latest revision as of 21:38, 16 August 2024
Index Register Select (X) is a flag in the processor status register (bit 4) of the 65c816. It indicates how wide the index registers are:
- When clear, both index registers are 16 bits wide. It can only be clear in native mode.
- When set or in emulation mode, both index registers are 8 bits wide.
It is not possible to control the width of the two index registers individually.
It can be affected by:
- REP (clears it if bit 4 of operand is set)
- SEP (sets it if bit 4 of operand is set)
- PLP (pops it off the stack)
- RTI
It affects the behavior of (possibly incomplete list):
In emulation mode, the x flag becomes the break flag.
There are no BXS or BXC instructions that examine this flag.
See Also
Reference
- Eyes & Lichty, page 422, Table 18.2. 65x Flags.