diff options
author | Santo Cariotti <dcariotti24@gmail.com> | 2020-04-01 23:18:54 +0200 |
---|---|---|
committer | Santo Cariotti <dcariotti24@gmail.com> | 2020-04-01 23:18:54 +0200 |
commit | 049930888329bd283d2875c57c4a97d5fc914938 (patch) | |
tree | 48fc9aa098bb9430c09f58585769636d88de8e4a /I_anno/Architettura_Elaboratori | |
parent | b7b4a7678c69a4f23dd9bd7ef95613ed23498884 (diff) |
feat: sum n numbers for ASM
Diffstat (limited to 'I_anno/Architettura_Elaboratori')
-rw-r--r-- | I_anno/Architettura_Elaboratori/sum_n_nums.asm | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/I_anno/Architettura_Elaboratori/sum_n_nums.asm b/I_anno/Architettura_Elaboratori/sum_n_nums.asm new file mode 100644 index 0000000..0efcedc --- /dev/null +++ b/I_anno/Architettura_Elaboratori/sum_n_nums.asm @@ -0,0 +1,23 @@ +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 |