Machine Organization & Assembly Language

CSE 378, Spring Quarter 2000


Assembly Language Programing Exercises

Exercise 1 - Absolute Value

The absolute value function is defined as:
abs(x) = x, if x >= 0
= -x, otherwise
Give a minimal sequence of MIPS assembly language instructions which puts the absolute value held in register $t0, into register $t1.

Exercise 2 - Swap

Write a minimal sequence of MIPS assembly language instructions, which when given two addresses of words, swaps the values stored at these addresses. The input registers are:

Inputs
$a0 Address 1
$a1 Address 2

Exercise 3 - Linear Search

Write an assembly language procedure to find a given 32-bit integer in an array of integers. The input and output registers are:

Inputs
$a0 Base address of the array
$a1 Number of elements in the array
$a2 Element to search for
Outputs
$v0 Flag (see below)

Register $v0 will hold the value 1 if the element held in $a2 is in the array. Otherwise it will hold the value 0.

Note that the array is not sorted, so we cannot perform a binary search. Your code should still work if the size of the array is 0.

You may assume that the procedure is a leaf procedure.

Exercise 4 - MiniMax

Write an assembly language procedure to find the minimum and maximum elements in an array of 32-bit integers. The input and output registers are:

Inputs
$a0 Base address of the array
$a1 Number of elements in the array
Outputs
$v0 Minimum element
$v1 Maximum element

The array has at least one element in it.

You can assume that the procedure is a leaf procedure.


Main Page  Section Notes Page