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: cscccl@hofstra.edu (<- 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.
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.