We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
PHA: Difference between revisions
From SnesLab
(depluralize "1 bytes") |
(3 cycle Instructions) |
||
(25 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: | |||
!colspan="8"|Basic Info | !colspan="8"|Basic Info | ||
|+ | |+ | ||
Line 9: | Line 7: | ||
|'''Speed''' | |'''Speed''' | ||
|+ | |+ | ||
| | |[[Stack Addressing|Stack]] (Push) | ||
|48 | |48 | ||
|1 byte | |1 byte | ||
|3 cycles | |3 cycles* | ||
|} | |} | ||
{| class="wikitable" style="float:right;clear:right;width:30%" | {| class="wikitable" style="float:right;clear:right;width:30%" | ||
!colspan="9"|Flags | !colspan="9"|Flags Affected | ||
|+ | |+ | ||
|N | |[[Negative Flag|N]] | ||
|V | |[[Overflow Flag|V]] | ||
|M | |[[M Flag|M]] | ||
|X | |[[X Flag|X]] | ||
|D | |[[Decimal Flag|D]] | ||
|I | |[[I Flag|I]] | ||
|Z | |[[Zero Flag|Z]] | ||
|C | |[[Carry Flag|C]] | ||
|+ | |+ | ||
|. | |. | ||
Line 36: | Line 34: | ||
|. | |. | ||
|} | |} | ||
'''PHA''' (PusH Accumulator) is a 65x instruction that pushes the value in the [[accumulator]] to the [[stack]]. If the accumulator is 16 bits wide, the high byte is pushed first. The [[stack pointer]] is decremented. | |||
===== Cycle Penalty ===== | |||
* PHA takes one extra cycle if the accumulator is 16 bits wide. | |||
=== See Also === | |||
* [[PLA]] | |||
* [[PHP]] | |||
* [[PHX]] | |||
* [[PHY]] | |||
* [[PHB]] | |||
* [[PHK]] | |||
=== External Links === | |||
* [[Eyes & Lichty]] page 476, on PHA: https://archive.org/details/0893037893ProgrammingThe65816/page/n502 | |||
* [[Labiak]] page 160 on PHA: https://archive.org/details/Programming_the_65816/page/n170 | |||
* [[MCS6500 Manual]] page 117 on PHA: https://archive.org/details/mos_microcomputers_programming_manual/page/n136 | |||
* [[Carr]] page 267 on PHA: https://archive.org/details/6502UsersManual/page/n280 | |||
* [[Leventhal]] page 3-81 on PHA: https://archive.org/details/6502-assembly-language-programming/page/n130 | |||
[[Category:ASM]] | [[Category:ASM]] | ||
[[Category:Inherited from 6502]] | [[Category:Inherited from 6502]] | ||
[[Category:Push Instructions]] | |||
[[Category:One-byte Instructions]] | |||
[[Category:Three-cycle Instructions]] |
Latest revision as of 12:32, 14 December 2023
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
Stack (Push) | 48 | 1 byte | 3 cycles* |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
N | V | M | X | D | I | Z | C | |
. | . | . | . | . | . | . | . |
PHA (PusH Accumulator) is a 65x instruction that pushes the value in the accumulator to the stack. If the accumulator is 16 bits wide, the high byte is pushed first. The stack pointer is decremented.
Cycle Penalty
- PHA takes one extra cycle if the accumulator is 16 bits wide.
See Also
External Links
- Eyes & Lichty page 476, on PHA: https://archive.org/details/0893037893ProgrammingThe65816/page/n502
- Labiak page 160 on PHA: https://archive.org/details/Programming_the_65816/page/n170
- MCS6500 Manual page 117 on PHA: https://archive.org/details/mos_microcomputers_programming_manual/page/n136
- Carr page 267 on PHA: https://archive.org/details/6502UsersManual/page/n280
- Leventhal page 3-81 on PHA: https://archive.org/details/6502-assembly-language-programming/page/n130