We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

ASL: Difference between revisions

From SnesLab
Jump to: navigation, search
(linkify absolute)
(added other cycle penalty)
Line 55: Line 55:
|}
|}


'''ASL''' (Arithmetic Shift Left) is a 65x instruction that shifts a value by left one bit (multiplication by two).  The most significant bit is shifted into the [[carry flag]].  The least significant bit becomes a zero. In [[direct page addressing]] modes, ASL takes another extra cycle if the low byte of the [[direct page register]] is nonzero.
'''ASL''' (Arithmetic Shift Left) is a 65x instruction that shifts a value by left one bit (multiplication by two).  The most significant bit is shifted into the [[carry flag]].  The least significant bit becomes a zero.
 
===== Cycle Penalties =====
* Except in [[accumulator addressing]], ASL takes two extra cycles when the accumulator is 16 bits wide
* In [[direct page addressing]] modes, ASL takes another extra cycle if the low byte of the [[direct page register]] is nonzero.


=== See Also ===
=== See Also ===

Revision as of 04:56, 20 November 2023

Basic Info
Addressing Mode Opcode Length Speed
accumulator 0A 1 byte 2 cycles
Absolute 0E 3 bytes 6 cycles*
direct page 06 2 bytes 5 cycles*
absolute indexed X 1E 3 bytes 7 cycles*
direct page indexed X 16 2 bytes 6 cycles*
Flags Affected
N V M X D I Z C
. . . . .

ASL (Arithmetic Shift Left) is a 65x instruction that shifts a value by left one bit (multiplication by two). The most significant bit is shifted into the carry flag. The least significant bit becomes a zero.

Cycle Penalties

See Also

External Links