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
Jump to: navigation, search
(additional cycle)
(deindent cycle penalty)
 
(24 intermediate revisions by the same user not shown)
Line 7: Line 7:
|'''Speed'''
|'''Speed'''
|+
|+
|stack
|[[Stack Addressing|Stack]] (Push)
|48
|48
|1 byte
|1 byte
Line 16: Line 16:
!colspan="9"|Flags Affected
!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 35: Line 35:
|}
|}


'''PHA''' (PusH Accumulator) is a 65x instruction that pushes the accumulator to the stack.  PHA takes one additional cycle if the accumulator is 16 bits wide.
'''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 firstThe [[stack pointer]] is decremented by the number of bytes pushed.
 
No flags are affected.
 
==== Syntax ====
<pre>
PHA
</pre>
 
==== Cycle Penalty ====
* PHA takes one extra cycle if the accumulator is 16 bits wide.


=== See Also ===
=== See Also ===
* [[PLA]]
* [[PHP]]
* [[PHP]]
* [[PHX]]
* [[PHX]]
Line 45: Line 56:


=== External Links ===
=== External Links ===
* [[Eyes & Lichty]] page on PHA: https://archive.org/details/0893037893ProgrammingThe65816/page/n502
* [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/476 page 476] on PHA
* [[Labiak]] page on PHA: https://archive.org/details/Programming_the_65816/page/n170
* [[Labiak]], [https://archive.org/details/Programming_the_65816/page/n170 page 160] on PHA
* [[MCS6500 Manual]] page on PHA: https://archive.org/details/mos_microcomputers_programming_manual/page/n136
* 8.5 on [[MCS6500 Manual]], [https://archive.org/details/mos_microcomputers_programming_manual/page/n136 page 117] on PHA
* [[Carr]] page on PHA: https://archive.org/details/6502UsersManual/page/n280
* [[Carr]], [https://archive.org/details/6502UsersManual/page/n280 page 267] on PHA
* [[Leventhal]] page on PHA: https://archive.org/details/6502-assembly-language-programming/page/n130
* [[Leventhal]], [https://archive.org/details/6502-assembly-language-programming/page/n130 page 3-81] on PHA


[[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 17:40, 23 August 2024

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 by the number of bytes pushed.

No flags are affected.

Syntax

PHA

Cycle Penalty

  • PHA takes one extra cycle if the accumulator is 16 bits wide.

See Also

External Links