Answer :- The MIPS assembly code has been written below-
.text
.globa; main
main : la $t1, lenA # $t1 = address of variable lenA
la $t2, arrayA # load starting address of arrayA into $t2
la $t3, count # load address of variable count in to $t3
lb $s2, ($t1) # $s2 = number of elements in the array
lw $s3, ($t3) # $s3 = count value from variable count
Loop1 : # label named as Loop1
lw $s1, ($t1) # $s1 = value from address kept in $t1
bgez $s1, Count1 # if $s1 has value greater than equal to zero (+ve value) then go to label named as Count1
Back1 : # label named as Back1
addi $t1, $t1, 4 # $t1 points to next word element of the array
addi $s2, $s2, -1 # $s2 = $s2 - 1, decrease the number of element count
bgtz $s2, Loop1 # if $s2 is not zero then go to label named as Loop1
Count1 : # label named as Loop1
addi $s3, $s3, 1 # increment the count value by 1
sw $s3, ($t3) # put the result back to the memory
j Back1 # go to label named as Back1
nop
.data 0x10010000
lenA : .byte 10 # length of the array is 10
arrayA : .word 3, 5, -2, 56, -18, 0, 98, 71, -88, 26, 10 # 10 array integers
count : .word 0 # initially count is equal to zero
# ECE 445 Computer Organization # Homework 3, problem 9 # Write a MIPS assembly language...
MIPS ASSEMBLY LANGUAGE Write MIPS code to convert binary to decimal: (01110001)2 to (113)10 .data binary_digit: .word 0 1 1 1 0 0 0 1 # is 113 in decimal .globl main main: # Load arguments to argument registers # Call convert() # Print return value # (it's in $v0, make sure to copy it before overwriting to print) # Properly end program convert: # This label is where conversion of the current...
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...
How can I convert the following C code to MIPS Assembly? +++++++++++++++++++++++++++++++++ MIPS main program ++++++++++++++++++++++++++++++++ .data # Defines variable section of an assembly routine. array: .word x, x, x, x, x, x, x, x, x, x # Define a variable named array as a word (integer) array # with 10 unsorted integer numbers of your own. # After your program has run, the integers in this array # should be sorted. .text # Defines the start of the code...
Hello, I'm having trouble completing this program in less than four lines using MIPS programming language, we are required to fill in the missing code as indicated (via comments). IMPORTANT: As indicated in the program's comments: ⇒ Write no more than certain number of lines of code as indicated. (One instruction per line, and there will be penalty if your code consumes more lines.) ⇒ Code MUST use only instructions that are allowed i.e., only bit manipulating instructions: (ANDing, ORing,...
Please comment the MIPS code to help me understand.
Here is what the code accomplishes.
Here is the code, partially commented.
.data
Matrix: .word 41,45,5, 34,8,
15,16,23,44,48,12,32,18,47,22,8,22
.word 46,40,42,33,13,38,27,6, 29,25,18,40,47,22,26,14,3
.word 7, 48,35,9, 43,38,9, 49,28,25,42,5, 44,10,5, 38,14
.word 46,33,16,6, 13,20,31,1, 8, 17,1, 47,28,46,14,28,7
.word 32,2, 48,25,41,29,14,39,43,46,3, 39,32,49,41,28,46
.word 5, 43,2, 48,13,4, 33,41,32,19,9, 25,30,22,2, 9, 40
.word 14,47,22,18,47,3, 35,44,18,6, 33,22,11,6, 47,50,4
.word 28,34,20,30,18,27,38,5, 26,40,37,23,16,13,37,8,7
.word 48,38,39,12,10,39,23,20,21,20,33,16,24,21,25,3,46
.word 49,38,40,38,13,47,5, 13,4, 13,23,26,12,30,29,29, 3
.word 8, 20,10,13,31,7, 12,41,12,21,28,26,43,14,35,10,19
.word 49,33,25,26,24,29,46,22,7, 5, 15,41,10,31,19,41,27
.word 48,9,...
Write a complete MIPS assembly language program that implements the following pseudocode. program h2 define global integer variables w, x, y, z -- in the .data section function main() SysPrintStr("Enter an integer >= 0 for w? ") w ← SysReadInt() SysPrintStr("Enter an integer >= 0 for x? ") x ← SysReadInt() SysPrintStr("Enter an integer < 0 for y? ") y ← SysReadInt() z ← 16(w + x) - (3 × -y mod 7) SysPrintStr("z = ") SysPrintInt(z) SysExit() end function...
CSCI 3000 Homework 4In this assignment, you will implement a simple version of Computer Lab administration system in C++. Your program will monitor computers in 4 computer labs and will allow users to log in and log out. Each computer lab has different number of computers.· Lab 1 has 10 computers· Lab 2 has 6 computers· Lab 3 has 3 computers· Lab 4 has 12 computersHere is a sample state of the system:Lab ArraySome of the computers are free (no...
Need some help on homework practice problems, Thank you in advance! Problem 1: Write a method, parallelSum(), that uses the fork-join framework to compute the sum of the elements of an array. Its skeleton as well as its Javadoc is provided in the file ParallelSum.java. Simple code for testing and timing your method is also provided in the main method. This problem is essentially the same as ParallelMax in structure. Therefore, follow the code for ParallelMax to complete ParallelSum. Problem...
PROJECT TASKS 1. Read the problem definition below and write a C++ program that implements your solution. Readability of the program will be graded based on variable naming, indentation, commenting (not too little and not too much), spacing, consistency, and styling in general including choice of functions. [NOTE: the code at the end of this document does not completely meet requirements as it uses many single letter variables and has no internal documentation. You need to improve it.] 2. Compile...