diff options
author | Santo Cariotti <dcariotti24@gmail.com> | 2020-06-08 19:55:38 +0200 |
---|---|---|
committer | Santo Cariotti <dcariotti24@gmail.com> | 2020-06-08 19:55:38 +0200 |
commit | d8dd8f916b1e6ca9756a0643c7a0d4cd3461e92c (patch) | |
tree | 94e06995533f0e0e4bba8f81dd1bbcd856d176a8 /I_anno/Architettura_Elaboratori | |
parent | 317a35795dae5533a9e012f978c731dfb80faddf (diff) |
feat: add exercise
Count number of ones in a number
Diffstat (limited to 'I_anno/Architettura_Elaboratori')
-rw-r--r-- | I_anno/Architettura_Elaboratori/num_of_1s.asm | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/I_anno/Architettura_Elaboratori/num_of_1s.asm b/I_anno/Architettura_Elaboratori/num_of_1s.asm new file mode 100644 index 0000000..ffbd4f4 --- /dev/null +++ b/I_anno/Architettura_Elaboratori/num_of_1s.asm @@ -0,0 +1,20 @@ +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 |