Please Reload Every Time You Read This Page!

CSC 111: Assembly Language Programming, Spring 2002

Dr. Chuck C. Liang
Assistant Professor of Computer Science, Hofstra University .

Office Address:
201A Adams Hall
Hofstra University
Hempstead, NY 11550
Office Phone: (516 463) 5559

Email: (<- click to send me mail)

Official Office Hours: MW 4:30-5:30 pm, TuTh 3-4pm, F 11:10am-12:10pm, or by appointment.

Course Syllabus

Online Resources:

Programming Assignment 1. Due Monday 2/25. Here's what I wrote in class on 2/13: string echo program
Programming assignment 2, due 3/6. Here's a java version of program
flying saucer assignment. (contains .data section)
Here's the program I wrote that prints 16 bit values in hexadecimal: hexprint.asm. It's written as a procedure
line.asm: program illustrating procedures, BIOS interrupts, and VGA mode 13h. Updated with drawcube procedure (reload!)
VESA high resolution test program
Sample program that uses MMX
Sample programs that use the mouse, and keyboard (includes example of user-defined interrupt handler).
Examples combining C and assembly: cfact.c, afact.asm (from 4/3 class)
Example using floating point coprocessor: ftest1.c, ftest2.asm
Quicksort in x86 assembly
Instructions for downloading Cygwin and gcc
array sorting assignment. Due Friday 4/12.

First Sparc assembly example
Sample sparc program from 4/22 class. (I filled in one of the delay slots after class)
stringrev.s: sparc program to input a string char by char and print it backwards.
first program illustrating functions. functional version of n-factorial (from 4/29).
First Sparc Lab and Assignment. NOTE: the last problem does NOT ask you to test if the string is sorted in alphabetical order - only that each char is a letter of the alphabet! Also, the last problem (loading large constant) is now optional - reload file for new version of assignment.

Final Assignment and its support file reload! Assignment due at schedule time of final exam (1:30pm, Wednesday 5/15)
Additional programming hints for the assignment


Note: For safety, please put a ".align 8" before every individual function. This might have an effect, depending on how your program is written.

Also: remember that leaf procedures (using retl) are procedures that do not call other procedures. Even if it just calls a printf, it can't be a leaf procedure - you must use save, ret, and restore for register window shifting. In particular, if your decode procedure calls another procedure, you must use register windows for it.

Don't underestimate the ammount of work that remains for you, for example, have you checked for stack over/underflow yet? Even after you've written most of the code, there's still debugging! If there's enough interest, Wednesday after the demonstrations I'd like to take the class out for a pizza dinner to celebrate our successful semester.

Please try to get a lab pass from the department office.