054. Adc immediate
Conectar ADC immediate (opcode $69) al despacho de la CPU.
Lección 54 de 356 · tests/chapter_01_cpu/test_054_ADC_immediate.py
Archivo a actualizar
emulator/cpu/opcodes.pySímbolos a crear/actualizar
opcodes.adc_immediate
OPCODE_TABLE[$69]
the `adc` instruction importPor qué existe este paso
El test 053 proporcionó aritmética sobre un valor ya resuelto. El modo immediate proporciona directamente el siguiente byte del programa, así que este manejador pasa el valor devuelto por immediate(cpu) directamente a adc.
Implementación de ejemplo completa
# emulator/cpu/opcodes.py
from emulator.cpu.instructions import ..., adc
def adc_immediate(cpu):
value = immediate(cpu)
adc(cpu, value)
OPCODE_TABLE = {
# ...existing entries...
0x69: adc_immediate,
}Invariantes importantes
- el manejador acepta solo
cpu - el modo immediate consume exactamente un byte de operando
- PC avanza dos bytes en total: opcode más operando
- el manejador delega toda la aritmética y los cambios de banderas en
adc
Concepto erróneo habitual
No trates el byte immediate como una dirección ni leas el bus una segunda vez; immediate(cpu) ya devuelve el valor del operando.
Fuera de alcance
- todos los opcodes de ADC direccionados a memoria
- cambios en
adco en los ayudantes de direccionamiento - la contabilidad de ciclos
Ejecutar esta lección
uv run pytest tests/chapter_01_cpu/test_054_ADC_immediate.py -v