NOP                         NOP No operation                          NOP

  Operation:  No Operation                              N V - B D I Z C
                                                        . . . . . . . .

  +----------------+-----------------------+---------+---------+----------+
  | Addressing Mode| Assembly Language Form| OP CODE |No. Bytes|No. Cycles|
  +----------------+-----------------------+---------+---------+----------+
  |  Implied       |   NOP                 |   $EA   |    1    |    2     |
  +----------------+-----------------------+---------+---------+----------+

 Illegal Versions:

  Can be used like BIT to skip the next one or two bytes,
  but this one doesn't change flags.

  +----------------+-----------------------+---------+---------+----------+
  | Addressing Mode| Assembly Language Form| OP CODE |No. Bytes|No. Cycles|
  +----------------+-----------------------+---------+---------+----------+
  |  Implied       |   NOP                 |   $1A   |    1    |    2     |
  |  Implied       |   NOP                 |   $3A   |    1    |    2     |
  |  Implied       |   NOP                 |   $5A   |    1    |    2     |
  |  Implied       |   NOP                 |   $7A   |    1    |    2     |
  |  Implied       |   NOP                 |   $DA   |    1    |    2     |
  |  Implied       |   NOP                 |   $FA   |    1    |    2     |
  |  Immediate     |   NOP #$FF            |   $80   |    2    |    2     |
  |  Immediate     |   NOP #$FF            |   $82   |    2    |    2     |
  |  Immediate     |   NOP #$FF            |   $89   |    2    |    2     |
  |  Immediate     |   NOP #$FF            |   $C2   |    2    |    2     |
  |  Immediate     |   NOP #$FF            |   $E2   |    2    |    2     |
  |  ZeroPage      |   NOP $FF             |   $04   |    2    |    3     |
  |  ZeroPage      |   NOP $FF             |   $44   |    2    |    3     |
  |  ZeroPage      |   NOP $FF             |   $64   |    2    |    3     |
  |  ZeroPage,X    |   NOP $FF,X           |   $14   |    2    |    4     |
  |  ZeroPage,X    |   NOP $FF,X           |   $34   |    2    |    4     |
  |  ZeroPage,X    |   NOP $FF,X           |   $54   |    2    |    4     |
  |  ZeroPage,X    |   NOP $FF,X           |   $74   |    2    |    4     |
  |  ZeroPage,X    |   NOP $FF,X           |   $D4   |    2    |    4     |
  |  ZeroPage,X    |   NOP $FF,X           |   $F4   |    2    |    4     |
  |  Absolute      |   NOP $FFFF           |   $0C   |    3    |    4     |
  |  Absolute,X    |   NOP $FFFF,X         |   $1C   |    3    |    4*    |
  |  Absolute,X    |   NOP $FFFF,X         |   $3C   |    3    |    4*    |
  |  Absolute,X    |   NOP $FFFF,X         |   $5C   |    3    |    4*    |
  |  Absolute,X    |   NOP $FFFF,X         |   $7C   |    3    |    4*    |
  |  Absolute,X    |   NOP $FFFF,X         |   $DC   |    3    |    4*    |
  |  Absolute,X    |   NOP $FFFF,X         |   $FC   |    3    |    4*    |
  +----------------+-----------------------+---------+---------+----------+
  * Add 1 if page boundary is crossed.

What it does: Nothing. No operation.

Major uses: Debugging. When setting breakpoints with BRK, you will often discover that a breakpoint, when examined, passes the test. That is, there is nothing wrong at that place in the program. So, to allow the program to execute to the next breakpoint, you cover the BRK with a NOP. Then, when you run the program, the computer will slide over the NOP with no effect on the program. Three NOPs could cover a JSR XXXX, and you could see the effect on the program when that particular JSR is eliminated.