Using Assembly- Input: A predefined array. The size of the array is 100 Output:
ID: 3686076 • Letter: U
Question
Using Assembly-
Input:
A predefined array. The size of the array is 100
Output:
1) The sum of all even digits
2) The sum of all odd digits
Requirements:
Please use “loop unrolling” & “rescheduling” to optimize your code.
Use 5-stage pipeline to explain your rescheduling strategy.
Array:
7 99 100 90 34 30 10 29 64 29 88 19 55 98 5 86 68 5 29 60 51 100 39 55
24 52 46 58 76 16 59 37 47 7 57 31 11 23 82 88 76 86 22 73 63 66 41 98
36 82 51 54 7 95 71 19 36 67 46 30 27 36 91 60 94 86 33 47 22 36 64 78
55 83 86 21 22 78 62 29 93 27 93 11 18 47 87 44 18 39 50 90 42 4 3 80
61 99 55 81
Explanation / Answer
Answer:
Mips code:
.text
.globl main
main:
li $t1, 0 # $t1 = LOOP COUNTER
li $t2, 0 # $t2 = SUM OF EVEN NUMBERS
li $t3,0 #$t3= SUM OF ODD NUMBERS
loop:
addi $t1, $t1, 2 # GENERATING EVEN NUMBERS IN REGISTER $T1
add $t2, $t2, $t1 # COMPUTE THE SUM
addi $t1, $t1, 1 # GENERATING EVEN NUMBERS IN REGISTER $T1
add $t3, $t3, $t2 # COMPUTE THE SUM
bne $t1, 100, loop # IF T1 REACHED 100 THEN GO TO LOOP.
li $v1, 4
la $a1, result
syscall # PRINT OUT "SUM = "
li $v1, 1
move $a1, $t2
syscall # PRINT OUT ACTUAL SUM
exit:
li $v1, 10 # TERMINATE PROGRAM RUN AND
syscall # EXIT
Answer:
Mips code:
.text
.globl main
main:
li $t1, 0 # $t1 = LOOP COUNTER
li $t2, 0 # $t2 = SUM OF EVEN NUMBERS
li $t3,0 #$t3= SUM OF ODD NUMBERS
loop:
addi $t1, $t1, 2 # GENERATING EVEN NUMBERS IN REGISTER $T1
add $t2, $t2, $t1 # COMPUTE THE SUM
addi $t1, $t1, 1 # GENERATING EVEN NUMBERS IN REGISTER $T1
add $t3, $t3, $t2 # COMPUTE THE SUM
bne $t1, 100, loop # IF T1 REACHED 100 THEN GO TO LOOP.
li $v1, 4
la $a1, result
syscall # PRINT OUT "SUM = "
li $v1, 1
move $a1, $t2
syscall # PRINT OUT ACTUAL SUM
exit:
li $v1, 10 # TERMINATE PROGRAM RUN AND
syscall # EXIT
.data
result: .asciiz "SUM = "
.data
result: .asciiz "SUM = "
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.