diff --git a/es1_20250331.asm b/es1_20250331.asm new file mode 100644 index 0000000..eafdee5 --- /dev/null +++ b/es1_20250331.asm @@ -0,0 +1,27 @@ + 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 \ No newline at end of file