ASL          ASL Shift Left One Bit (Memory or Accumulator)           ASL

                   +-+-+-+-+-+-+-+-+
  Operation:  C <- |7|6|5|4|3|2|1|0| <- 0               N V - B D I Z C
                   +-+-+-+-+-+-+-+-+                    / . . . . . / /

  +----------------+-----------------------+---------+---------+----------+
  | Addressing Mode| Assembly Language Form| OP CODE |No. Bytes|No. Cycles|
  +----------------+-----------------------+---------+---------+----------+
  |  Accumulator   |   ASL A               |   $0A   |    1    |    2     |
  |  ZeroPage      |   ASL $FF             |   $06   |    2    |    5     |
  |  ZeroPage,X    |   ASL $FF,X           |   $16   |    2    |    6     |
  |  Absolute      |   ASL $FFFF           |   $0E   |    3    |    6     |
  |  Absolute,X    |   ASL $FFFF,X         |   $1E   |    3    |    7     |
  +----------------+-----------------------+---------+---------+----------+
  For penalty cycles on the 65816, check the desired addressing mode.


  4510 Versions:

  +----------------+-----------------------+---------+---------+----------+
  | Addressing Mode| Assembly Language Form| OP CODE |No. Bytes|No. Cycles|
  +----------------+-----------------------+---------+---------+----------+
  |  ZeroPage      |   ASL $FF             |   $06   |    2    |    4r    |
  |  Accumulator   |   ASL A               |   $0A   |    1    |    1s    |
  |  Absolute      |   ASL $FFFF           |   $0E   |    3    |    5r    |
  |  ZeroPage,X    |   ASL $FF,X           |   $16   |    2    |    4r    |
  |  Absolute,X    |   ASL $FFFF,X         |   $1E   |    3    |    5pr   |
  +----------------+-----------------------+---------+---------+----------+
  p Add 1 if page boundary is crossed.
  r Add 1 if clock speed is at 40 MHz
  s Instruction requires 2 cycles when CPU is run at 1MHz or 2MHz