042. Ldy inmediato
Añadir LDY inmediato ($A0).
Lección 42 de 356 · tests/chapter_01_cpu/test_042_LDY_immediate.py
Archivo a actualizar
emulator/cpu/opcodes.pyUbicaciones
opcodes import of ldy
opcodes.ldy_immediate
opcodes.OPCODE_TABLE[$A0]Por qué existe este paso
La instrucción principal ldy ya gestiona el comportamiento del registro y los flags. Esta lección conecta su primera codificación obteniendo un operando literal de un byte y pasando ese valor a ldy.
Ejemplo completo de implementación
# emulator/cpu/opcodes.py
from emulator.cpu.addressing_modes import immediate
from emulator.cpu.instructions import ldy
def ldy_immediate(cpu: CPU):
ldy(cpu, immediate(cpu))
OPCODE_TABLE = {
# Preserve existing entries.
0xA0: ldy_immediate,
}Invariantes importantes
- $A0 se mapea a ldy_immediate
- el modo inmediato obtiene exactamente un byte de operando, avanzando PC en uno tras el opcode
- el operando en sí se carga; no se trata como una dirección de memoria
ldysigue siendo responsable de actualizar Zero y Negative
Error frecuente
No se debe leer el bus en el valor numérico del byte inmediato. Para A0 42, Y recibe $42 directamente.
Fuera de alcance
- codificaciones de LDY en página cero, indexado y absoluto
- handlers de opcode de STY
- temporización de ciclos
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_042_LDY_immediate.py -v