CS611
Assembly Language Programming and Machine Organization
Spring 1997


Instructor: P. Hatcher
Office: Kingsbury M204
Phone: 862-2678
E-mail: pjh@cs.unh.edu
Office Hours: MWF 8:30-9:00am, MWF 10:10-11:00am or by appointment.

Teaching Assistant: Mark MacBeth
E-mail: mwm@cs.unh.edu
Office Hours: Tu 3:30-5pm; Th 3:30-6:30pm in Linux cluster, 3rd floor Kingsbury.

The prerequisite for this course is CS410 or CS412 or CS416.

This semester we will be studying the Java Virtual Machine and the DEC Alpha architecture. The key goals for the course are to understand program and data representation, to become familiar with assembly language and machine language programming, to understand the impact on software of basic computer architecture concepts such as the memory hierarchy, and to study fundamental system software such as assemblers, linkers and debuggers.

Grading

The course requirements are to complete seven programming assignments and to take four quizzes:

The programming assignments are (with tentative due dates):

  1. Translate Unicode to/from UTF-8: due Feb 9.

  2. Emulate IEEE Floating Point addition: due Feb 23.

  3. Implement pieces of the Java Virtual Machine: due Mar 9.

  4. Provide a Java debugging environment: due Mar 30.

  5. Implement a DEC Alpha disassembler: due Apr 13.

  6. Implement in DEC Alpha assembler a pi calculation and a sieve calculation: due Apr 27.

  7. Implement an out-of-core Jacobi calculation: due May 11.

  8. Extra credit assignment: due May 18.

The programming assignments may be done in either C or C++. (There is one exception: program 6 must be done using DEC Alpha assembler.)

Programming assignments may be handed in late at a penalty of 5% per day up to one week late. A program is not considered late unless turned in after 8am on the day after the due date.

The grading of programming assignments will be based primarily upon demonstrated correct functionality. That is, you will be awarded points for what your program actually does. The bulk of the test cases will be public and available in advance.

Points may be deducted from your programming assignment grade if your work is not adequately documented and structured. If we can't easily read and understand your program, you may lose points!

The quizzes will be given during normal class meeting times. They will cover the following topics (given with tentative dates):

  1. Data representation - Feb 26

  2. Java Virtual Machine - April 2

  3. DEC Alpha - April 21

  4. Hardware and software interface - May 5

Students receiving at least 65% of the course points are guaranteed at least a C-. Students receiving at least 75% of the course points are guaranteed at least a B-. Students receiving at least 85% of the course points are guaranteed at least an A-.

Textbooks

There is no required textbook for this course.

On reserve in the Kingsbury library:

You may want to keep an eye on the Developer's Corner at the Sun Java web site for documents on the Java programming language and the Java virtual machine. For example, The Java Language Specification by Gosling, Joy and Steele is available on-line here. I hope that The Java Virtual Machine Specification by Lindholm and Yellin will be available on-line in the future.

You can download Postscript for the DEC OSF/1 Assembly Language Programmer's Guide from a DEC web page. Look under "Programmer Guides" and select "Assembly Language Programmer's Guide". Alternatively, go to the DEC home page and search for the document's order number, AA-PS31C-TE. (In addition, a nice compact bound copy can be ordered for $11 from DEC at 1-800-344-4825.)

I do not think you need to purchase any of the above books. Access to the copies on reserve in the library should be sufficient. However, if you want to order your own copies of any of the books on reserve, I suggest Quantum Books or Amazon.com Books. (The latest edition of the Sites book is called Alpha AXP Architecture Reference Manual and is co-authored by Witek.)

If you are thinking of purchasing your own Java books, O'Reilly and Associates publishes inexpensive books on Java:

I do not think these books are as thorough as the Java books on reserve, but if money is tight they should prove to be adequate.

Computer Accounts

{christa,hopper}.unh.edu are the primary computing resources for this course. You should automatically be given accounts on these machines. During the semester you may use any other machines that you have access to, but for grading purposes your programs must execute on christa and hopper.

Policy on Cheating

All students are expected to do their own work on the programming assignments. No collaboration is allowed. A general rule to follow is that you may discuss your programs with other students at the concept level but never at the coding level. If you are at all unclear about this general rule, don't discuss your programs with other students at all.

Because so much of your course grade is based upon the programming assignments, I will treat cases of cheating severely. If caught cheating on an assignment, you can expect to (at least) receive a failing grade for the course. I also am required to report all cases of cheating to the computer science department head and to the student's advisor.


Last modified on May 8, 1997.

Comments and questions should be directed to pjh@cs.unh.edu