25 lines
1.0 KiB
NASM
25 lines
1.0 KiB
NASM
; Manuel Vichi 3^AIN
|
|
; Realizzare un programma che conta il numero di valori maggiori di un valore dato nell'area di memoria da 201h a 228h;
|
|
; scrivere il numero di valori maggiori del valore contenuto nella cella 200h cosi ottenuto nella cella 229h.
|
|
|
|
ORG 100H ; Posizione iniziale del programma
|
|
|
|
LD A, (200H) ; Carica il valore dato nel registro A
|
|
LD B, 28h ; Inizializza B con l'indice massimo + 1 (28h = 40 in decimale)
|
|
LD HL, 201H ; Imposta HL come puntatore all'inizio dell'area di memoria da esaminare
|
|
ld c,0h
|
|
COUNT_LOOP:
|
|
CP (HL) ; Confronta il valore corrente con il valore in A
|
|
JR NC, NEXT ; Se il valore in HL non è maggiore, salta a NEXT
|
|
INC C ; Incrementa il contatore se il valore è maggiore
|
|
|
|
NEXT:
|
|
INC HL ; Passa al prossimo valore nell'area di memoria
|
|
dec b
|
|
jp NZ, COUNT_LOOP ; Ripeti fino a B = 0
|
|
|
|
END:
|
|
ld a,c
|
|
LD (229H), a ; Salva il conteggio nella cella 229h
|
|
HALT ; Fine del programma
|