Laboratory Title: Introduction to Loops and Subroutines in Assembly Language

Objectives:

1. To become familiar with conditional branch instructions

2. Understanding how to write loops

3. Understanding how to write subroutines

Results:

Able to create a program that gets the sum of the values in an array, as well as multiple arrays

Conclusions:

This week lab taught us how to write not only one loop but two loops in one single program. At first, it was difficult to execute subroutine instructions. But after going over notes and lectures, we understand how to use subroutines.

Team: May Saw EET

Name Program Signature

Observations/Measurements:

IV. 1.A. Copy and paste the source code.

IV. 1. B. Copy and paste the register window at the second iteration where the carry becomes set. Highlight the carry flag to show that it is set.

IV. 1. C Copy and paste the register window to show the final result. IV. 2.A. Copy and paste the source code.

IV. 2. B. Copy and paste the assembly, register, and memory after the first JSR instruction to verify that stack holds the return address.

IV. 2. C Copy and paste the memory window to show the values of Sum1 and Sum2.

Questions:

1. What does the CPU do (in terms of register contents and stack) when it executes a JSR instruction?

2. What does the CPU do (in terms of register values and stack) when it executes a RTS instruction?