Update assembly code

master
Aadhavan Srinivasan 2 years ago
parent be43e7d2a7
commit 49237ba657

@ -2,9 +2,11 @@
.section .text .section .text
func: func:
init:
MOV R0,#3 @Move 3 to R0 MOV R0,#3 @Move 3 to R0
MOV R1,#5 @Move 5 to R1 MOV R1,#5 @Move 5 to R1
MOV R2,#0 @Move 0 to R2 MOV R2,#0 @Move 0 to R2
MOV R3,#1000 @The value to compare with
loop: loop:
add5: add5:
ADD R2,R2,R1 @Add R1 to R2 ADD R2,R2,R1 @Add R1 to R2
@ -14,21 +16,20 @@ add3:
ADD R0,R0,#3 @Increment R0 by 3 ADD R0,R0,#3 @Increment R0 by 3
check3: check3:
CMP R0,#1000 @Is R0 less than 1000? CMP R0,R3 @Is R0 less than 1000?
BLT check5 @If true, check 5
BGE rmv15 @If the multiple of 3 is greater than 1000, go to rmv15 BGE rmv15 @If the multiple of 3 is greater than 1000, go to rmv15
check5: check5:
CMP R1,#1000 @Is R1 less than 1000? CMP R1,R3 @Is R1 less than 1000?
BLT loop @If true, go back to loop BLT loop @If true, go back to loop
BGE add3 @If the multiple of 5 reaches 1000, go to add3 - Continue adding multiples of 3, because those wouldn't have reached 1000 yet BGE add3 @If the multiple of 5 reaches 1000, go back to add3 instead of loop - Continue adding multiples of 3, because those wouldn't have reached 1000 yet
rmv15: rmv15:
MOV R0,#15 @The loop that follows is intended to subtract multiples of 15, which would have been added twice - 3, 6, 9, 12, 15, 18 ; 5, 10, 15, 20 MOV R0,#15 @The loop that follows is intended to subtract multiples of 15, which would have been added twice - 3, 6, 9, 12, [15], 18 ; 5, 10, [15], 20
loop2: loop2:
SUB R2,R2,R0 SUB R2,R2,R0
ADD R0,R0,#15 ADD R0,R0,#15
CMP R0,#1000 CMP R0,R3
BLT loop2 BLT loop2

Loading…
Cancel
Save