CSCI 360 Spring 2014

CSCI 360 Exam 1 Study Guide

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

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 luxuries we get from 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 familair 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: