org 100h main: LD HL, 200h LD B, 42h LD C, 99h LD D, 20h CALL cambia_valori halt end cambia_valori: PUSH AF PUSH BC PUSH HL PUSH DE loop: LD A, (HL) ; carica il valore corrente CP B ; confronta con valore da cercare JR NZ, skip ; se diverso, salta sostituzione LD (HL), C ; altrimenti sostituisce con C skip: INC HL ; passa alla prossima cella DEC D ; decrementa il contatore JP NZ, loop ; se D != 0, continua il ciclo POP DE ; ripristina registri POP HL POP BC POP AF RET