Las instrucciones de comparación son:
- “cmp”.
- “cpx”.
- “cpy”.
La primera compara el acumulador con el operando. La segunda compara el registro X con el operando. Y la última compara el registro Y con el operando.
En los tres casos, la comparación se articula como la resta registro – operando, y los flags del registro de estado se activan o desactivan en función de esa resta. Por ello, si la comparación/resta arroja la igualdad, se activa el flag Z – zero; en caso contrario, se desactiva el flag Z – zero. Igualmente, si la comparación/resta arroja que el registro es mayor que el operando (resta positiva), se activa el flag C – carry; en caso contrario (resta negativa), se desactiva el flag C – carry.
“cmp” soporta los modos de direccionamiento inmediato, absoluto, página cero, absoluto indexado, página cero indexado, indirecto – indexado e indexado – indirecto. Por su parte, “cpx” y “cpy” sólo soportan los modos de direccionamiento inmediato, absoluto y página cero.
Todas estas instrucciones modifican los flags S – sign, Z – zero y C – carry. Sus detalles se pueden consultar aquí: http://www.6502.org/tutorials/6502opcodes.html#CMP.