Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

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 = "

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote