diff --git a/es2_20250317.asm b/es2_20250317.asm new file mode 100644 index 0000000..028e1d3 --- /dev/null +++ b/es2_20250317.asm @@ -0,0 +1,24 @@ +; 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