From 9f1c3e02bcf21bcc041f5681e97aa292dee756f2 Mon Sep 17 00:00:00 2001 From: Vichingo455 Date: Sun, 10 Aug 2025 10:45:39 +0000 Subject: [PATCH] Upload files to "Verifica/A1" --- Verifica/A1/es1a.asm | 22 ++++++++++++++++++++++ Verifica/A1/es1a.hex | 4 ++++ Verifica/A1/es1a.lst | 27 +++++++++++++++++++++++++++ Verifica/A1/es1a.obj | Bin 0 -> 283 bytes 4 files changed, 53 insertions(+) create mode 100644 Verifica/A1/es1a.asm create mode 100644 Verifica/A1/es1a.hex create mode 100644 Verifica/A1/es1a.lst create mode 100644 Verifica/A1/es1a.obj diff --git a/Verifica/A1/es1a.asm b/Verifica/A1/es1a.asm new file mode 100644 index 0000000..7ed62f0 --- /dev/null +++ b/Verifica/A1/es1a.asm @@ -0,0 +1,22 @@ +; Manuel Vichi 3^AIN +; Esercizio A1 + + jp 100h ; Salto a 100h per sicurezza + org 100h ; Buona norma partire da 100h dato che 200h-210h sono riservati al programma e 0h-0Fh sono solitamente riservati per funzioni specifiche come gli interrupt + +start: ld HL, 200h ; Carica in HL l'indirizzo iniziale + ld D, 10h ; Carica in D il numero di celle di memoria da ispezionare + ld B, 0h ; Carica in B il contatore di celle equivalenti al valore dato + ld IX, 210h ; Carica in IX la cella su cui scrivere + ld c, 2Fh ; Carica in C il valore con cui confrontare +loop: ld A, (HL) ; Carica il valore da HL in A per il confronto + cp c ; Confronta il valore in C con il valore in A + jr NZ, SKIP ; Se non sono equivalenti, salta + inc B ; Se sono equivalenti, incrementa il contatore B +skip: inc HL ; Incrementa la posizione della cella da confrontare + dec D ; Decrementa il contatore delle celle + jr NZ, LOOP ; Se D non è zero, continua ad ispezionare + ld a, b ; Altrimenti, trasporta il valore dal registro B al registro A + ld (IX+0), a ; Infine, carica il valore finale dentro la cella di memoria a cui punta IX + halt + end \ No newline at end of file diff --git a/Verifica/A1/es1a.hex b/Verifica/A1/es1a.hex new file mode 100644 index 0000000..05bde6d --- /dev/null +++ b/Verifica/A1/es1a.hex @@ -0,0 +1,4 @@ +:10000000C30001000000000000000000000000002C +:1001000021000216100600DD2110020E2F7EB920FC +:0B0110000104231520F778DD7700764E +:00000001FF diff --git a/Verifica/A1/es1a.lst b/Verifica/A1/es1a.lst new file mode 100644 index 0000000..e50c3db --- /dev/null +++ b/Verifica/A1/es1a.lst @@ -0,0 +1,27 @@ +--------------------------------------------- +OSHONSOFT Z80 ASSEMBLER LISTING +Line Addr Opcode Label Instruction +--------------------------------------------- +0001 0000 ; Manuel Vichi 3^AIN +0002 0000 ; Esercizio A1 +0003 0000 +0004 0000 C3 00 01 jp 100h ; Salto a 100h per sicurezza +0005 0003 org 100h ; Buona norma partire da 100h dato che 200h-210h sono riservati al programma e 0h-0Fh sono solitamente riservati per funzioni specifiche come gli interrupt +0006 0100 +0007 0100 21 00 02 start: ld HL, 200h ; Carica in HL l'indirizzo iniziale +0008 0103 16 10 ld D, 10h ; Carica in D il numero di celle di memoria da ispezionare +0009 0105 06 00 ld B, 0h ; Carica in B il contatore di celle equivalenti al valore dato +0010 0107 DD 21 10 02 ld IX, 210h ; Carica in IX la cella su cui scrivere +0011 010B 0E 2F ld c, 2Fh ; Carica in C il valore con cui confrontare +0012 010D 7E loop: ld A, (HL) ; Carica il valore da HL in A per il confronto +0013 010E B9 cp c ; Confronta il valore in C con il valore in A +0014 010F 20 01 jr NZ, SKIP ; Se non sono equivalenti, salta +0015 0111 04 inc B ; Se sono equivalenti, incrementa il contatore B +0016 0112 23 skip: inc HL ; Incrementa la posizione della cella da confrontare +0017 0113 15 dec D ; Decrementa il contatore delle celle +0018 0114 20 F7 jr NZ, LOOP ; Se D non è zero, continua ad ispezionare +0019 0116 78 ld a, b ; Altrimenti, trasporta il valore dal registro B al registro A +0020 0117 DD 77 00 ld (IX+0), a ; Infine, carica il valore finale dentro la cella di memoria a cui punta IX +0021 011A 76 halt +0022 011B end +Number of errors = 0 diff --git a/Verifica/A1/es1a.obj b/Verifica/A1/es1a.obj new file mode 100644 index 0000000000000000000000000000000000000000..c558d4c1a6d9a81425342d1e013735c37b8de5ee GIT binary patch literal 283 pcmX@iz{oI?fg%Hwm;f8YT}1&VKK;6#3XCkuq6*(D?v^u@0RS9N2TlM0 literal 0 HcmV?d00001