School-Assembly-Z80/es1_20250331.asm

27 lines
558 B
NASM

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