We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
PLX: Difference between revisions
From SnesLab
(deindent cycle penalty) |
|||
(9 intermediate revisions by the same user not shown) | |||
Line 25: | Line 25: | ||
|[[Carry Flag|C]] | |[[Carry Flag|C]] | ||
|+ | |+ | ||
| | |N | ||
|. | |. | ||
|. | |. | ||
Line 31: | Line 31: | ||
|. | |. | ||
|. | |. | ||
| | |Z | ||
|. | |. | ||
|} | |} | ||
'''PLX''' (PulL X) is a 65x instruction that pulls the value at the top of the [[stack]] into the [[X index register]]. | '''PLX''' (PulL X) is a 65x instruction that pulls the value at the top of the [[stack]] into the [[X index register]]. PLX increments the [[stack pointer]] before the pull. | ||
===== Cycle Penalty | The Labiak textbook seems to have omitted the fact that according to the datasheet, PLX affects the [[zero flag]]. | ||
==== Syntax ==== | |||
<pre> | |||
PLX | |||
</pre> | |||
==== Cycle Penalty ==== | |||
* PLX takes one additional cycle if the index registers are 16 bits wide. | * PLX takes one additional cycle if the index registers are 16 bits wide. | ||
Line 44: | Line 51: | ||
* [[PLA]] | * [[PLA]] | ||
* [[PHX]] | * [[PHX]] | ||
* [[LDX]] | |||
=== External Links === | === External Links === | ||
* [[Eyes & Lichty]] | * [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/487 page 487] on PLX | ||
* [[Labiak]] | * [[Labiak]], [https://archive.org/details/Programming_the_65816/page/n181 page 171] on PLX | ||
* snes9x implementation of PLX: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L2156 | * snes9x implementation of PLX: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L2156 | ||
Line 54: | Line 62: | ||
[[Category:Pull Instructions]] | [[Category:Pull Instructions]] | ||
[[Category:One-byte Instructions]] | [[Category:One-byte Instructions]] | ||
[[Category:Four-cycle Instructions]] |
Latest revision as of 17:39, 23 August 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
Stack (Pull) | FA | 1 byte | 4 cycles* |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
N | V | M | X | D | I | Z | C | |
N | . | . | . | . | . | Z | . |
PLX (PulL X) is a 65x instruction that pulls the value at the top of the stack into the X index register. PLX increments the stack pointer before the pull.
The Labiak textbook seems to have omitted the fact that according to the datasheet, PLX affects the zero flag.
Syntax
PLX
Cycle Penalty
- PLX takes one additional cycle if the index registers are 16 bits wide.
See Also
External Links
- Eyes & Lichty, page 487 on PLX
- Labiak, page 171 on PLX
- snes9x implementation of PLX: https://github.com/snes9xgit/snes9x/blob/master/cpuops.cpp#L2156