I completely bombed my exam but I\'d like to know what I did wrong. Convert the
ID: 3693509 • Letter: I
Question
I completely bombed my exam but I'd like to know what I did wrong.
Convert the C function below to MIPS assembly language. Make sure that your assembly language code could be called from a standard C program (that is to say, make sure you follow the MIPS calling conventions). Avoid the use of multiplication instructions and pseudoinstructions since they are unnecessary. int sum (int n) { if (n = =0) return 0; else returns n + sum (n-1); } The stack grows downward (to ward lower memory addresses). Assume the attribute value n is stored in $a0.Explanation / Answer
r1: .asciiz "Height of the device screen: 960 " str2: .asciiz "Width of the device screen: 640 " str3: .asciiz "The result of the Iphone 4S in pixel: " newline: .asciiz " " .text main: li $v0,4 #system call code for print string la $a0,str1 #address of str1 syscall #print str1 #get the first number from the user, put into $s0 li $v0,960 #system call for read input syscall #read integer into $v0 from console. move $s0,$v0 #move the number read into $s0 #read input string for str2 li $v0,4 #system call code for print string la $a0,str2 #address of str2 syscall #print str2 #get the second number from the user, put into $s1 li $v0,640 #system call for read input syscall #read integer into $v0 from console. move $s1,$v0 #move the number read into $s0 #do the calculation mul $s2,$s0,$s1 # s2 is the register to store $s0 and $s1 from the user input. #read print string for st3 li $v0,4 #system call code for print string la $a0,str3 #address of str3 syscall #print width*height li $v0,1 move $a0,$s2 #move the result of multiplication into $a0 to print syscall exist
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.