University of Puget Sound - Fall 2005
CSci281 Assembly Language and Computer Architecture

Class Periods and Exam Schedule

section class times mid-term exam final exam study guide
CSci281A
Assembly Lang
Comp Arch
_M_W_F_ 1200-1250 TH322
_T_____ 1230-1320 TH322
Oct 14 Dec 14 (Wednesday ) 12:00pm-2:00pm

Catalog description

Introduction to machine organization, machine structure, data representation, digital logic and assembly language programming on a RISC based architecture.

What we're really going to study:

This class might be better titled "Computer Architecture and Assembly Language Programming" as that's the order we'll be studying the material. Our study will start with the basic logic elements, we will then examine how they can build more complex elements, leading up to a complete, although basic, CPU at the core of a comptuer. We'll finally look at how one writes assembly language programs for such a CPU.

"Computer architecture" is best defined as the aspects of a computer design visible to the assembly language programmer. At the minimum this includes reference to instructions, registers, memory organization, and peripheral access, but may also cover internal busses, common peripherals, etc. That's why "assembly language programming" appears in the description. All the rest helps us understand what's going on inside the machine.

In broad terms, this class will look at where we are, how we got here, and where we may go with respect to computer architectures. The evolution of the electronic computer has been driven by demands for more speed and smaller size. (It's fortunate that smaller size generally supports greater speed, but other, more subtle, tricks are used as well. These tricks often affect how we program the computer.) This evolution has had many side tracks and a few retreats, the study of which can illuminate a possible underlying grand scheme.

We shall examine in detail one of the current best performing architectures, SPARC, one of the most widely distributed microcomputers, 8052, and the Java Virtual machine. In addition, we will take brief looks at a number of other architectures such as the DEC/Compaq/HP Alpha, HP PA-RISC, and Intel Itanium to provide contrasting perspectives.

Textbook

Structured Computer Organization, Fifth Edition, Andrew S. Tanenbaum, Prentice Hall, 2005. ISBN 0-13-148521-0

Other worthwhile reading:

Lecture Schedule and Notes


Our goal is to complete Chapters 1-7. We will focus on assembly language the SPARC, 8052 and JVM near the end of the term.
Aug 29- Sep 2Chap 1 - Introduction
Sep 5- Sep 9Chap 2 - Computer Systems Organization
Sep 12- Sep 23Chap 3 - Digital Logic Level
Sep 26- Oct 14Chap 4 - Microarchitecture Level
Oct 17- Oct 28Chap 5 - Instruction Set Architecture Level
Oct 31- Nov 4Chap 6 - Operating System Machine Level
Nov 7- Dec 2Chap 7 - Assembly Language Level
2005/09/07Error correcting code example
2005/10/26Hello World
2005/10/26Simple Functions

Assignments

Asgn 1Circuit Design Due: 2005/09/23 HTML PDF
Asgn 2Microcoding Due: 2005/11/04 HTML
Asgn 3Instruction decoding Due: 2005/11/16 HTML
Asgn 4Assembly program 1 Due: 2005/11/18
Asgn 5Assembly program 2 Due: 2005/11/29

Grading

The class grade will be based on about a five assignments and two exams. Greater weight (60%) will be given to the assignments.

Programming is not just about writing syntatically correct programs which compute the correct results. It is also about writing commentary and other documentation which will help others understand what you're doing. (This matches one of the University goals which emphasizes "the ability to communicate clearly and effectively".) Therefore you will also be expected to write clearly. Spelling, grammar, and style count.


CSci281/index.html was last edited by Randolph Bentson, on 2005/12/14T11:33:57-08:00
This course syllabus is a work in progress, so be sure to visit again in the near future.

campus workspace