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
(clobbered -> affected)
(dp alignment penalty)
Line 15: Line 15:
|0E
|0E
|3 bytes
|3 bytes
|6 cycles
|6 cycles*
|+
|+
|direct page
|direct page
|06
|06
|2 bytes
|2 bytes
|5 cycles
|5 cycles*
|+
|+
|absolute indexed X
|absolute indexed X
|1E
|1E
|3 bytes
|3 bytes
|7 cycles
|7 cycles*
|+
|+
|direct page indexed X
|direct page indexed X
|16
|16
|2 bytes
|2 bytes
|6 cycles
|6 cycles*
|}
|}


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.
'''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.


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

Revision as of 01:22, 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. In direct page addressing modes, ASL takes another extra cycle if the low byte of the direct page register is nonzero.

See Also

External Links