Translate the following C code into MIPS assembly code, using the minimum number of instructions. Assume that the values of a, b. 1, and are stored in registers $se $51 ste, and $t1, respectively. Also, assume that register $52) holds the base address of the array D. for(i = 0; i < a; i++) for(j = 0; j < b; j++) D[4*j] = i + j; move $10, $zero loop_i: blt $10, $50, loop_jj end_loop_i loop_j: move $11, $zero blt $t1, $s1, update_dj end_loop_j update_d: sll $t2, $11, 2 add $13, $10, $t1 sw $13,0($s2) addi $11, $t1, 1 j loop_j end_loop_j: addi $to, $t0, 1 j loop_iend_loop_i: move $10, $zero outer loop: bge $10, $50, end outer move $11, $zero inner_loop: bge $t1, $s1, end_inner sll $12, $11, 2 add $13, $to, $t1 sw $13, 0($s2) addi $t1, $t1, 1j inner_loop end_inner: addi $to, $t0, 1 jouter loop end outer: move $to, $zero outer loop: blt $to, $s0, continue outer j end outer continue outer: move $t1, $zero inner_loop: blt $t1, $s1, continue_inner j end_inner continue_inner: sll $t2, $11, 2 add $12, $s2, $12 add $13, $to, $t1 sw $13, 0($12) addi $t1, $t1, 1 j inner_loop end_inner: addi $to, $t0, 1j outer_loop end_outer: move $10, $zero outer loop: bge $to, $s0, end outer move $t1, $zero inner_loop: bge $t1, $s1, end_inner sll $12, $11, 2 add $13, $to, $t1 add $12, $s2, $t2 sw $t3, 0($12) addi $t1, $t1, 1 j inner_loop end_inner: addi $10, $10, 1 j outer_loop end outer:

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
Translate the following C code into MIPS assembly code, using the minimum number of instructions. Assume that the values of a, b. 1, and are stored in registers $se $51 ste, and $t1, respectively. Also, assume that
register $52) holds the base address of the array D.
for(i = 0; i < a; i++)
for(j = 0; j < b; j++)
D[4*j] = i + j;
move $10, $zero loop_i: blt $10, $50, loop_jj end_loop_i loop_j: move $11, $zero blt $t1, $s1, update_dj end_loop_j update_d: sll $t2, $11, 2 add $13, $10, $t1 sw $13,0($s2) addi $11, $t1, 1 j loop_j end_loop_j: addi $to, $t0, 1 j loop_iend_loop_i:
move $10, $zero outer loop: bge $10, $50, end outer move $11, $zero inner_loop: bge $t1, $s1, end_inner sll $12, $11, 2 add $13, $to, $t1 sw $13, 0($s2) addi $t1, $t1, 1j inner_loop end_inner: addi $to, $t0, 1 jouter loop end outer:
move $to, $zero outer loop: blt $to, $s0, continue outer j end outer continue outer: move $t1, $zero inner_loop: blt $t1, $s1, continue_inner j end_inner continue_inner: sll $t2, $11, 2 add $12, $s2, $12 add $13, $to, $t1 sw $13, 0($12) addi $t1, $t1, 1 j
inner_loop end_inner: addi $to, $t0, 1j outer_loop end_outer:
move $10, $zero outer loop: bge $to, $s0, end outer move $t1, $zero inner_loop: bge $t1, $s1, end_inner sll $12, $11, 2 add $13, $to, $t1 add $12, $s2, $t2 sw $t3, 0($12) addi $t1, $t1, 1 j inner_loop end_inner: addi $10, $10, 1 j outer_loop end outer:
Transcribed Image Text:Translate the following C code into MIPS assembly code, using the minimum number of instructions. Assume that the values of a, b. 1, and are stored in registers $se $51 ste, and $t1, respectively. Also, assume that register $52) holds the base address of the array D. for(i = 0; i < a; i++) for(j = 0; j < b; j++) D[4*j] = i + j; move $10, $zero loop_i: blt $10, $50, loop_jj end_loop_i loop_j: move $11, $zero blt $t1, $s1, update_dj end_loop_j update_d: sll $t2, $11, 2 add $13, $10, $t1 sw $13,0($s2) addi $11, $t1, 1 j loop_j end_loop_j: addi $to, $t0, 1 j loop_iend_loop_i: move $10, $zero outer loop: bge $10, $50, end outer move $11, $zero inner_loop: bge $t1, $s1, end_inner sll $12, $11, 2 add $13, $to, $t1 sw $13, 0($s2) addi $t1, $t1, 1j inner_loop end_inner: addi $to, $t0, 1 jouter loop end outer: move $to, $zero outer loop: blt $to, $s0, continue outer j end outer continue outer: move $t1, $zero inner_loop: blt $t1, $s1, continue_inner j end_inner continue_inner: sll $t2, $11, 2 add $12, $s2, $12 add $13, $to, $t1 sw $13, 0($12) addi $t1, $t1, 1 j inner_loop end_inner: addi $to, $t0, 1j outer_loop end_outer: move $10, $zero outer loop: bge $to, $s0, end outer move $t1, $zero inner_loop: bge $t1, $s1, end_inner sll $12, $11, 2 add $13, $to, $t1 add $12, $s2, $t2 sw $t3, 0($12) addi $t1, $t1, 1 j inner_loop end_inner: addi $10, $10, 1 j outer_loop end outer:
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Similar questions
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY