040. Instrucción ldy
Añadir la instrucción LDY principal.
Lección 40 de 356 · tests/chapter_01_cpu/test_040_instruction_ldy.py
Archivo a actualizar
emulator/cpu/instructions.pyUbicación
instructions.ldy, beside stxPor qué existe este paso
LDY inicia la familia de carga del registro Y estableciendo su comportamiento a nivel de valor antes de conectar ningún opcode de LDY. Refleja a LDA y LDX: asigna un valor ya resuelto al registro de destino y luego actualiza Zero y Negative.
Implementación de ejemplo completa
# emulator/cpu/instructions.py
def ldy(cpu: CPU, value):
cpu.y = value
cpu._update_zero_and_negative_flags(cpu.y)Invariantes importantes
- ldy recibe un valor, no una dirección
- Y recibe el valor mientras A y X permanecen sin cambios
- Zero se activa exactamente para $00 y se desactiva en caso contrario
- Negative refleja el bit 7 y se desactiva cuando el bit 7 es cero
Concepto erróneo habitual
No obtengas un operando ni leas memoria dentro de ldy; los futuros manejadores de opcode resolverán un valor antes de llamar a esta instrucción.
Fuera de alcance
- todos los manejadores de opcode de LDY y sus entradas en la tabla de opcodes
- la instrucción STY y sus codificaciones
- la temporización de ciclos
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_040_instruction_ldy.py -v