summaryrefslogtreecommitdiff
path: root/I_anno/Architettura_Elaboratori
diff options
context:
space:
mode:
Diffstat (limited to 'I_anno/Architettura_Elaboratori')
-rw-r--r--I_anno/Architettura_Elaboratori/biggest.asm31
-rw-r--r--I_anno/Architettura_Elaboratori/counter_numbers.asm33
-rw-r--r--I_anno/Architettura_Elaboratori/division.asm23
-rw-r--r--I_anno/Architettura_Elaboratori/find_elem.asm34
-rw-r--r--I_anno/Architettura_Elaboratori/lowest.asm31
-rw-r--r--I_anno/Architettura_Elaboratori/multiply.asm21
-rw-r--r--I_anno/Architettura_Elaboratori/num_of_1s.asm20
-rw-r--r--I_anno/Architettura_Elaboratori/odd_even_numbers.asm36
-rw-r--r--I_anno/Architettura_Elaboratori/subsequence_less_than_5.asm30
-rw-r--r--I_anno/Architettura_Elaboratori/sum_n_nums.asm23
-rw-r--r--I_anno/Architettura_Elaboratori/vector_prod.asm103
11 files changed, 0 insertions, 385 deletions
diff --git a/I_anno/Architettura_Elaboratori/biggest.asm b/I_anno/Architettura_Elaboratori/biggest.asm
deleted file mode 100644
index a604350..0000000
--- a/I_anno/Architettura_Elaboratori/biggest.asm
+++ /dev/null
@@ -1,31 +0,0 @@
-array dcd 3, 6, 10, 55, -1, 120, 10, -2, 0, 0, 13
-arr_n dcd 12
-
- mov r0, #arr_n
- ldr r1, [r0] ; r1 = grandezza dell'array
-
- mov r0, #array ; r0 = array[0]
- ldr r3, [r0] ; r3 = numero maggiore
-
-loop
- cmp r1, #0
- beq loop_end
-
- ldr r2, [r0]
-
- cmp r2, r3
- bgt assign_gt
-
- add r0, r0, #4
-
-loop_back
- sub r1, r1, #1
-
- b loop
-
-assign_gt
- mov r3, r2
- b loop_back
-
-loop_end
- end
diff --git a/I_anno/Architettura_Elaboratori/counter_numbers.asm b/I_anno/Architettura_Elaboratori/counter_numbers.asm
deleted file mode 100644
index e48f1e3..0000000
--- a/I_anno/Architettura_Elaboratori/counter_numbers.asm
+++ /dev/null
@@ -1,33 +0,0 @@
-array dcd 1, 24, 0, 12, 24, 2, 24, 24
-arr_n dcd 8
-elem dcd 24
-
- mov r0, #arr_n
- ldr r1, [r0] ; r1 = lunghezza array
-
- mov r0, #elem
- ldr r2, [r0] ; r2 = elemento da controllare
-
- mov r0, #array
- mov r4, #0 ; r4 = contatore delle occorrenze
-
-loop
- cmp r1, #0
- beq loop_end
-
- ldr r3, [r0] ; r3 = valore in cui punta r0
- cmp r3, r2
- beq found
-
-loop_back
- add r0, r0, #4 ; r0 punta alla nuova word
- sub r1, r1, #1
-
- b loop
-
-found
- add r4, r4, #1
- b loop_back
-
-loop_end
- end
diff --git a/I_anno/Architettura_Elaboratori/division.asm b/I_anno/Architettura_Elaboratori/division.asm
deleted file mode 100644
index 6b9f80a..0000000
--- a/I_anno/Architettura_Elaboratori/division.asm
+++ /dev/null
@@ -1,23 +0,0 @@
-op_a dcd 42
-op_b dcd 6
-
- mov r0, #op_a
- ldr r1, [r0]
-
- mov r0, #op_b
- ldr r2, [r0]
-
- mov r0, #0
-
-loop
- cmp r1, r2
- blt loop_end
-
- sub r1, r1, r2
- add r0, r0, #1
-
- b loop
-
-loop_end
-
- end
diff --git a/I_anno/Architettura_Elaboratori/find_elem.asm b/I_anno/Architettura_Elaboratori/find_elem.asm
deleted file mode 100644
index db7dc35..0000000
--- a/I_anno/Architettura_Elaboratori/find_elem.asm
+++ /dev/null
@@ -1,34 +0,0 @@
-array dcd 1, 3, 2, 4, 0
-arr_n dcd 5
-elem dcd 3
-
- mov r0, #arr_n
- ldr r1, [r0] ; r1 <- lunghezza array
-
- mov r0, #elem
- ldr r2, [r0] ; r2 <- elemento da cercare
-
- mov r0, #array ; r0 <- puntatore al primo elemento dell'array
-
-loop
- cmp r1, #0
- beq loop_end
-
- ldr r3, [r0]
-
- cmp r3, r2
- beq found
-
- add r0, r0, #4
- sub r1, r1, #1
-
-
- b loop
-
-found
- mov r4, #0 ; r4 = 1, quindi trovato
- end
-
-loop_end
- mov r4, #1 ; r4 = 0, quindi non trovto
- end
diff --git a/I_anno/Architettura_Elaboratori/lowest.asm b/I_anno/Architettura_Elaboratori/lowest.asm
deleted file mode 100644
index 3dccb4a..0000000
--- a/I_anno/Architettura_Elaboratori/lowest.asm
+++ /dev/null
@@ -1,31 +0,0 @@
-array dcd 3, 6, 10, 55, -1, 120, 10, -2, 0, 0, 13
-arr_n dcd 12
-
- mov r0, #arr_n
- ldr r1, [r0] ; r1 = grandezza dell'array
-
- mov r0, #array ; r0 = array[0]
- ldr r3, [r0] ; r3 = numero maggiore
-
-loop
- cmp r1, #0
- beq loop_end
-
- ldr r2, [r0]
-
- cmp r2, r3
- blt assign_lt
-
- add r0, r0, #4
-
-loop_back
- sub r1, r1, #1
-
- b loop
-
-assign_lt
- mov r3, r2
- b loop_back
-
-loop_end
- end
diff --git a/I_anno/Architettura_Elaboratori/multiply.asm b/I_anno/Architettura_Elaboratori/multiply.asm
deleted file mode 100644
index 1635a6d..0000000
--- a/I_anno/Architettura_Elaboratori/multiply.asm
+++ /dev/null
@@ -1,21 +0,0 @@
-op_1 dcd 4
-op_2 dcd 10
-
- mov r0, #op_1
- ldr r1, [r0]
-
- mov r0, #op_2
- ldr r2, [r0]
-
- mov r0, #0
-
-loop
- cmp r2, #0
- beq loop_end
-
- add r0, r0, r1
- sub r2, r2, #1
- b loop
-
-loop_end
- end
diff --git a/I_anno/Architettura_Elaboratori/num_of_1s.asm b/I_anno/Architettura_Elaboratori/num_of_1s.asm
deleted file mode 100644
index ffbd4f4..0000000
--- a/I_anno/Architettura_Elaboratori/num_of_1s.asm
+++ /dev/null
@@ -1,20 +0,0 @@
-num dcd 27 ; 0b11011
-
- mov r0, #num
- ldr r0, [r0]
- mov r2, r0
-
- mov r1, #32
-
-loop
- and r4, r2, #1
- cmp r4, #1
- bne itszero
- add r3, r3, #1
-itszero
- lsr r2, r2, #1
- sub r1, r1, #1
- cmp r1, #0
- bne loop
-
- end
diff --git a/I_anno/Architettura_Elaboratori/odd_even_numbers.asm b/I_anno/Architettura_Elaboratori/odd_even_numbers.asm
deleted file mode 100644
index 996fd62..0000000
--- a/I_anno/Architettura_Elaboratori/odd_even_numbers.asm
+++ /dev/null
@@ -1,36 +0,0 @@
-arr_n dcd 8
-array dcd 1, 2, 4, 6, -5, 8, 7, 3
-s_arr dcd 0
-
- mov r0, #arr_n
- ldr r0, [r0]
- mov r1, r0
-
- mov r4, #1 ; 0 = even, 1 = odd
- mov r6, #0 ; number of elements on new sequence
-
- mov r2, #s_arr
-
- mov r1, #array
-
-loop
- cmp r0, #0
- beq end_program
- ldr r3, [r1], #4
- mov r5, r3
-
- and r5, r3, #1
- cmp r5, r4 ; check if element stored in r3 is odd or even
- beq data_store
-subn_loop
- sub r0, r0, #1
- b loop
-
-data_store
- str r3, [r2], #4
- add r6, r6, #1
- b subn_loop
-
-end_program
- str r6, [r2]
- end
diff --git a/I_anno/Architettura_Elaboratori/subsequence_less_than_5.asm b/I_anno/Architettura_Elaboratori/subsequence_less_than_5.asm
deleted file mode 100644
index 3c266d5..0000000
--- a/I_anno/Architettura_Elaboratori/subsequence_less_than_5.asm
+++ /dev/null
@@ -1,30 +0,0 @@
-arr_n dcd 6
-array dcd 3, 6, 7, 2, 9, 0
-s_arr dcd 1
-
- mov r0, #arr_n
- ldr r0, [r0]
- mov r1, r0
-
- mov r2, #s_arr
- mov r1, #array
- mov r4, #0 ; number of elements on new sequence
-
-loop
- cmp r0, #0
- beq end_program
- ldr r3, [r1], #4
- cmp r3, #5 ; number to compare
- blt data_store
-subn_loop
- sub r0, r0, #1
- b loop
-
-data_store
- str r3, [r2], #4
- add r4, r4, #1
- b subn_loop
-
-end_program
- str r4, [r2]
- end
diff --git a/I_anno/Architettura_Elaboratori/sum_n_nums.asm b/I_anno/Architettura_Elaboratori/sum_n_nums.asm
deleted file mode 100644
index 0efcedc..0000000
--- a/I_anno/Architettura_Elaboratori/sum_n_nums.asm
+++ /dev/null
@@ -1,23 +0,0 @@
-arr_1 dcd 3, 2, 1, 5
-a_len dcd 4
-
- mov r0, #a_len
- ldr r1, [r0] ; valore N, grandezza array
-
- mov r0, #arr_1 ; puntatore dell'array
- ldr r2, [r0] ; primo valore dell'array
- mov r3, #0
-
-loop
- cmp r1, #0
- beq loop_end
-
- add r3, r3, r2
- add r0, r0, #4 ; incrementa di un byte il puntatore dell'array
- ldr r2, [r0]
-
- sub r1, r1, #1
- b loop
-
-loop_end
- end
diff --git a/I_anno/Architettura_Elaboratori/vector_prod.asm b/I_anno/Architettura_Elaboratori/vector_prod.asm
deleted file mode 100644
index cf5e4ef..0000000
--- a/I_anno/Architettura_Elaboratori/vector_prod.asm
+++ /dev/null
@@ -1,103 +0,0 @@
-array1 dcd 1, 3, 4, 1
-array2 dcd 1, 0, 2, 0
-arrayn dcd 4
-
- mov r0, #arrayn
- ldr r0, [r0] ; r0 = lunghezza array
-
- mov r1, #array1 ; r1 = puntatore al primo array
- mov r2, #array2 ; r2 = puntatore al secondo array
-
-loop
- cmp r0, #0
- beq loop_end
-
- ldr r3, [r1] ; r3 = valore a cui punta r1
- ldr r4, [r2] ; r4 = valore a cui punta r2
-
- cmp r3, #0 ; se r3 è 0, la moltiplicazione sarà 0
- beq r3_store
- blt after_neg3 ; se r3 è negativo, cambia il filtro a 1
-jp_before4
- cmp r4, #0 ; se r4 è 0, la moltiplicazione sarà 0
- beq r4_store
- blt after_neg4 ; se r4 è negativo, controlla se il filtro è già 1, in caso lo cambia
-jp_after4
- cmp r3, r4 ; confronta r3 e r4 per fare la moltiplicazione con ciclo minore
- bgt mul_r3
- ble mul_r4
-
-loop_back
- add r1, r1, #4 ; incrementa i puntatori e decrementa contatore
- add r2, r2, #4
- sub r0, r0, #1
- mov r6, #0
-
- b loop
-
-after_neg3
- mvn r3, r3
- add r3, r3, #1
- mov r6, #1
- b jp_before4
-
-restart_r6
- mov r6, #0
- b jp_afte4
-
-after_neg4
- mvn r4, r4
- add r4, r4, #1
- cmp r6, #1
- beq restart_r6 ; re inserisce il valore 0 perché fa prodotto di due negativi
-
- mov r6, #1
- b jp_after4
-
-neg3
- mvn r3, r3
- add r3, r3, #1
- add r5, r5, r3
- b loop_back
-
-r3_store
- cmp r6, #1
- beq neg3
- str r3, [r1]
- add r5, r5, r3
- b loop_back
-
-neg4
- mvn r4, r4
- add r4, r4, #1
- str r4, [r1]
- add r5, r5, r4
- b loop_back
-
-r4_store
- cmp r6, #1
- beq neg4
- str r4, [r1]
- add r5, r5, r4
- b loop_back
-
-mul_r3
- cmp r4, #1
- ble r3_store
-
- add r3, r3, r3
-
- sub r4, r4, #1
- b mul_r3
-
-mul_r4
- cmp r3, #1
- ble r4_store
-
- add r4, r4, r4
-
- sub r3, r3, #1
- b mul_r4
-
-loop_end
- end