27 lines
558 B
NASM
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 |