Question

Given:  MIPS Programming in MIPS Assembly Language Assume: Load, Store, R-format, and Jump (j) instructions have CPI...

Given:  MIPS Programming in MIPS Assembly Language

Assume: Load, Store, R-format, and Jump (j) instructions have CPI = 1

Assume: Branch and jr or ja Instructions (e.g., branches) have CPI = 2

Assume: All MIPS system calls (e.g., for printing) have CPI = 3

Assume: Variable x stored in register $s1, y in $s2, z in $s3, i in $t0

Express the following precondition loop in MIPS assembly language

              x := 0 ; i := 5 ;         # Document each MIPS statement
              while (x < 10) do:
              {  x := x + 2 ; i := i - 1}
              syscall(print, "Did ", i , " iterations")

How many cycles are used by your MIPS program?  

(I would really appreciate it if you could explain how you found the number of cycles)

0 0
Add a comment Improve this question Transcribed image text
Answer #1

.data
msg1 : .asciiz "Did "
msg2 : .asciiz " iterations"
x : .word 0
i : .word 5
   .text
   .globl main
main:
#load instructions are lw,li,la takes 1 cycle
#R-format instructions are addi,add,sub
#branch instructions are blt takes 2 cycles
#system calls takes 3 cycles   

#$s1 : store the x
#$t0 : store the i

lw $s1,x #lw - load word.copy x to $s1 #1cycle

lw $t0,i #lw - load word.copy i to $t0 #1cycle
# $v0 = 4. print the string
# $v0 = 1. print the integer
# $v0 = 10 .Exit the program

#This loop takes 4 cycles for 1 iteration
#So for 5 iterations it take 20 cycles
#while loop
loop:
#x = x + 10
addi $s1,$s1,2 #add immediate $s1 and 2.Result will store in $s1 # 1cycle
#i = i - 1
sub $t0,$t0,1 #subtract $t0 and 1.Result will store in $t0 # 1cycle
#if(x<10)
blt $s1,10,loop #branch if less than.If $s2 less than 10 ,jump to label loop # 2cycles
  
#print the msg1.This print takes 1+1+3 = 5cycles
li $v0,4 #print string syscall code is 4 # 1cycle
la $a0,msg1 #load the address of msg1 # 1cycle
syscall # 3 cycles

#syscall to print integer
#print the i value..This print takes 1+1+3 = 5cycles
li $v0,1 #print integer syscall code is 1 # 1cycle
move $a0,$t0 #copy value of $s2 to $a0 # 1cycle
syscall                     #3 cycles
#print the msg2.This print takes 1+1+3 = 5cycles
li $v0,4 #print string syscall code is 4 # 1cycle
la $a0,msg2 #load the address of msg1 # 1cycle
syscall                       #3 cycles

#Termination takes 1+3 = 4cycles
li $v0,10 #$v0 == 10 terminate the program # 1cycle
syscall #executes the above operation #3 cycles

#So totally this program takes 41 cycles


Add a comment
Know the answer?
Add Answer to:
Given:  MIPS Programming in MIPS Assembly Language Assume: Load, Store, R-format, and Jump (j) instructions have CPI...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • WRITE THE FOLLOWING CODE IN FLOATING POINT NUMBERS IN ASSEMBLY LANGUAGE USING MIPS IN MARS .data...

    WRITE THE FOLLOWING CODE IN FLOATING POINT NUMBERS IN ASSEMBLY LANGUAGE USING MIPS IN MARS .data prompt: .asciiz "\nMaximum number is : " prompt1: .asciiz "\nMinimum number is : " prompt2: .asciiz "\nRange of the array is : " size: .word 10 #load array array: .word 23, -12, 45, -32, 52, -72, 8, 13,22,876 .text #load address of array and size la $s4,array #load address of A lw $t0,size #load i to t0 jal getArrayRange li $v0, 4    la...

  • 2.4 For the MIPS assembly instructions below, what is the corresponding C statement? Assume that the...

    2.4 For the MIPS assembly instructions below, what is the corresponding C statement? Assume that the variables f, g, h, i, and j are assigned to registers $s0, $s1, $s2, $s3, and $s4, respectively. Assume that the base address of the arrays A and B are in registers $s6 and $s7, respectively. sll $t0, $s0, 2               # $t0 = f * 4 add $t0, $s6, $t0         # $t0 = &A[f] sll $t1, $s1, 2               # $t1 =...

  • Convert the following c code into instructions MIPS Assembly language. Assume a associated with $s0, i...

    Convert the following c code into instructions MIPS Assembly language. Assume a associated with $s0, i with $s1, and j with $s2. if( i < 10) {      if( j < 10)      { a = 0; }      else      { a = 1;} } else {      a = 2; }

  • MIPS Assembly Computer Organization and Design MIPS Algorithm Design (25 pts. Throughout the course, we have...

    MIPS Assembly Computer Organization and Design MIPS Algorithm Design (25 pts. Throughout the course, we have learned different types of instruction sets in MIPS programming: arithmetic instructions, branch instructions, jump instructions, and memory access instructions. Let's assume, we have a 10 line of MIPS code in which we perform 5 arithmetic operations, 2 branch operations. 1 jump operation, and 2 memory operations (1 store, 1 load). In the datapath, we are given that: fetching the instruction set takes 2 states....

  • 2. The table below holds MIPS assembly code fragments with different branch instructions LOOP addi $s2....

    2. The table below holds MIPS assembly code fragments with different branch instructions LOOP addi $s2. $s2. 2 subi $t1. st1. 1 bne t1. 0. LOOP DONE: LOOP: it st2. $0. stl beq t2. 0. DONE addi $s2. Ss2. 2 LOOP DONE: For the loops written in MIPS assembly in the above table, assume that the register Şt1 is initialized to the value of 10. What is the value in register $s2 assuming that $s2 initially has a value of...

  • 4) Consider the following assembly language code: INSTRUCTIONS T01 T02 T03 T04 T05 T06 T07 T08...

    4) Consider the following assembly language code: INSTRUCTIONS T01 T02 T03 T04 T05 T06 T07 T08 T09 T10 T11 T12 T13 T14 (as a table) Loop: sll $t1, $s3, 2 add $t1, $t1, $s6 lw $t0, 0($t1) beq $t0, $s5, Exit addi $s3, $s3, 1 j Loop Exit: Use a pipeline with forwarding, hazard detection, and 1 delay slot for branches. The pipeline is the typical 5-stage IF, ID, EX, MEM, WB MIPS design. For the above code, complete the...

  • Translate each of the following pseudo-instructions into MIPS instructions. You should Produce a minimal sequence of...

    Translate each of the following pseudo-instructions into MIPS instructions. You should Produce a minimal sequence of MIPS instructions to accomplish the required computation. (8 Points) 1) bgt $t1, 100, Label # bgt means branch if greater than 2) ble $s2, 10, Next # ble means branch if less than or equal 3) ror $s0, $s4, 7 # ror means rotate right $s4 by 7 bits and store the result in $s0 4) neg $s5, $s4 # $s5 will have the...

  • Convert the following C fragment to equivalent MIPS assembly language. Assume that the variables a, b,...

    Convert the following C fragment to equivalent MIPS assembly language. Assume that the variables a, b, c, d, i and x are assigened to registers $t1, $t2, $t3, $t4, $s0 and $s1 respectively. Assume that the base address of the array A and B is in register $a0 and $a1 respectively. if (a > 0)            b = a + 10;            else                b = a - 10;

  • Consider the following MIPS assembly language instructions: addi $1, $2, 100 swr $1, 0($2): addi $rt,...

    Consider the following MIPS assembly language instructions: addi $1, $2, 100 swr $1, 0($2): addi $rt, $rs, immediate # add immediate swr $rt, immedi ate ($rs) # store word write register These instructions are I-format instructions similar to the load word and store word instructions. The addi and swr instructions store a computed value to the destina- tion register $rt. The instructions do not require any physical hardware changes to the datapath. The effect of each instruction is given below....

  • i need help with a mips program to to covert roman numerals to real numbers Lab 4: Roman Numeral Conversion Part A: Due...

    i need help with a mips program to to covert roman numerals to real numbers Lab 4: Roman Numeral Conversion Part A: Due Sunday, 19 May 2019, 11:59 PM Due Friday, 24 May 2019, 11:59 PM Part B: Minimum Submission Requirements Ensure that your Lab4 folder contains the following files (note the capitalization convention): o Diagram.pdf o Lab4. asm O README.txt Commit and push your repository Lab Objective In this lab, you will develop a more detailed understanding of how...

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT