CSCI 360 Exam 1 Study Guide

Exam 1 is 100 points long and covers material that was involved in the two written assignments and programs 1 through 3.

Review questions are available on the course home page. Please take some time to look at them, as they are representative of what will be on the exam.

What is not on this test? The test does not involve tables or internal subroutines.

You will need a copy of the Reference Summary.

Binary and Hexadecimal representation and arithmetic

Your understanding of the binary and hexadecimal systems is crucial when programming in any Assembly language.

Memory Organization

It is important to know how main memory is organized. In some cases you must organize and access your memory according to specific rules, otherwise your programs will not function correctly.

Dumps

When programming and debugging on the machine level, the truth is always in the dump. Do not rely on what the assembler was 'supposed to do'. The only way to get to the root of a problem is to look in the dump. It is important then that you are familiar with the format of the dump and how to read it.

Addressing

One of the features provided by the assembler is the use of labels, which greatly simplify the task of referencing memory throughout our program. However, it is important to know how the addresses are stored and determined in our instructions. There are no labels in the dumps, so we must be able to find an address given its base-index-displacement values.

Instruction Encoding

The basic job of the assembler is to take your instructions and encode them into their machine-language form. You should be familair with how the assembler does this, and especially how to do the reverse. That is, given the machine-language code, how to convert back to the explicit assembler. This is important when debugging from a dump.

Important Instructions

Of course, all assembly language programmers must be familiar with the instruction set of the computer they are programming.

Basic Program Structure

You are expected to know how to implement, in assembler, the basic structured programing constructs of higher-level languages. These include: