126. Ora immediate
exponer ORA immediate como el opcode ``0x09``.
Lección 126 de 356 · tests/chapter_01_cpu/test_126_ORA_immediate.py
Por qué existe este paso
El opcode inmediato expone ORA a la ejecución de la CPU con un byte literal y comprueba que la decodificación delega el resultado y el manejo de flags a la primitiva compartida.
En este paso, tras crear `or_a en la lección 125, realiza estas adiciones en emulator/cpu/opcodes.py`:
from emulator.cpu.instructions import (..., and_a, or_a)
def ora_immediate(cpu: CPU):
or_a(cpu, immediate(cpu))
OPCODE_TABLE = {
...
0x09: ora_immediate,
}`emulator/cpu/addressing_modes.py::immediate devuelve directamente el byte obtenido por CPU.fetch_byte. instructions.or_a` almacena A | value y solo cambia Z/N; Carry/Overflow y la memoria permanecen invariantes, y el opcode más el operando avanza el PC dos bytes.
Concepto erróneo: el byte inmediato es el valor, así que volver a leerlo a través de `cpu.bus` lo trataría erróneamente como una dirección. Fuera de alcance: los manejadores de ORA basados en memoria (lecciones 127-133) y las importaciones y manejadores de EOR/BIT en las lecciones 134-145.
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_126_ORA_immediate.py -v