059. Adc absolute y
Conectar ADC absolute,Y (opcode $79) al despacho de la CPU.
Lección 59 de 356 · tests/chapter_01_cpu/test_059_ADC_absolute_y.py
Archivo a actualizar
emulator/cpu/opcodes.pySímbolos a crear/actualizar
opcodes.adc_absolute_y
OPCODE_TABLE[$79]Por qué existe este paso
Este es el equivalente indexado por Y del test 058. absolute_y consume la dirección base de dos bytes y aplica Y; el manejador lee la ubicación resultante y delega el valor en adc.
Implementación de ejemplo completa
# emulator/cpu/opcodes.py
def adc_absolute_y(cpu):
addr = absolute_y(cpu)
value = cpu.bus.read(addr)
adc(cpu, value)
OPCODE_TABLE = {
# ...existing entries...
0x79: adc_absolute_y,
}Invariantes importantes
- Y se aplica exactamente una vez, en
absolute_y - la dirección efectiva no está restringida a la página cero
- PC avanza tres bytes en total
- el valor direccionado se pasa a
adc
Concepto erróneo habitual
No copies el manejador de absolute,X dejándolo usar X; el opcode $79 indexa la dirección base con Y.
Fuera de alcance
- los modos indirectos de ADC
- las penalizaciones de tiempo por cruce de página
- cambios en los ayudantes de direccionamiento o aritmética
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_059_ADC_absolute_y.py -v