CS201 Lab: SPIM Addressing Modes

Objective of this lab:


	To practice using base addressing to implement arrays 
	in PCSpim. You will also use loops.

Preparation


	Read lab lecture notes.

Lab Assignment

Program#1:

Complete the SPIM assembly language program loop1.s.
  1. The program will calculate the sum of the elements in "array".
  2. Here is the program skeleton; you will complete it.
  3.  
    
    ##
    ## 	Program Name:	loop1.s 
    ##
    ##		- will calculate the sum of the elements in "array".
    ##		- "count" holds the number of elements in "array".
    ##		
    ##		
    ##		- Output format must be 
    ##		  "sum = 15"
    ##
    ##		t0 - point to array elements in turn
    ##		t1 - contains count of elements
    ##      	t2 - contains sum
    ##		
    ##		t3 - each word from array in turn
    ##
    
    #################################################
    #                                               #
    #               text segment                    #
    #                                               #
    #################################################
    
            .text
            .globl __start
    __start:                # execution starts here
    
    #	Put your answer between dashed lines.
    #
    #------------------Your code starts next line---------------
    
    
    
    
    
    #-----------------Your code ends above this line----------------
    
    
    	la $a0,endl	# syscall to print out
    	li $v0,4	# a new line
    	syscall 
    
    	li $v0,10	# Exit
    	syscall		# Bye!
    
    
    #################################################
    #                                               #
    #               data segment                    #
    #                                               #
    #################################################
    
            .data
    	array:	.word 3,4,2,6
    	count:	.word 4
    	ans1:	.asciiz "sum = "
    	endl:	.asciiz "\n"	   
    
    ##
    ## 	end of file loop1.s
    
    
    
  4. Print out the sum in this format: "sum = 15"

Program#2:

Complete the SPIM assembly language program loop2.s.
  1. The program will calculate the sum of the elements in "numbers"
    whose value is less than or equal to 1000.
  2. Here is the program skeleton; you will complete it.
  3.  
    
    ##
    ## 	Program Name:	loop2.s 
    ##
    ##		- will calculate the sum of all elements in the array "numbers"
    ##		  whose value is less than or equal to 1000.
    ##		- "numbers" is an array with 5 integer elements.
    ##		- "count" holds the number of elements in "numbers".
    ##		
    ##		
    ##		- Output format must be 
    ##		  "sum = 11"
    ##
    ##		t0 - points to array elements in turn
    ##		t1 - contains a count of elements
    ##      	t2 - contains sum
    ##		
    ##		t3 - each word from the array "numbers" in turn
    ##
    
    #################################################
    #                                               #
    #               text segment                    #
    #                                               #
    #################################################
    
            .text
            .globl __start
    __start:                # execution starts here
    
    
    #	Put your answer between dashed lines.
    #
    #------------------Your code starts next line---------------
    
    
    
    
    
    #-----------------Your code ends above this line----------------
    
    	la $a0,endl	# syscall to print out
    	li $v0,4	# a new line
    	syscall 
    
    	li $v0,10	# Exit
    	syscall		# Bye!
    
    
    #################################################
    #                                               #
    #               data segment                    #
    #                                               #
    #################################################
    
            .data
    	numbers:	
    		.word 3,2000,2,6,3000
    	count:	.word 5
    	
    	ans1:	.asciiz "sum = "
    	endl:	.asciiz "\n"	   
    
    ##
    ## 	end of file loop2.s
    
    
    
  4. Print out the sum in this format: "sum = 11"

You will hand in the following:

  1. The source code in the file loop1.s and loop2.s
  2. The screenshot (print screen) to show the program has been successfully loaded
  3. The screenshot of the console displaying the results


Copyright: Department of Computer Science, University of Regina.