CS 210 PROJECT #2 Due: Noon Monday 03/27/06 This project introduces students to the design of programs that use arrays of numbers and characters and that use Intel string-instructions. PROBLEM STATEMENT Write an assembly language program that will print the calendar for any year in the 21-st Century which the user specifies as a command-line argument, like this: $ calendar 2007 (The required format for your output is shown on the back of this page.) Your program must be a stand-alone application whose source-code resides in a single file (named 'calendar.s) which does NOT make calls to any of the functions in the standard C/C++ libraries. This means that you will use '_start' as the public label for your program's entry-point and that you will assemble and link your program using these commands: $ as calendar.s -o calendar.o $ ld calendar.o -o calendar It also means that your program can locate the character-string that the user typed as the command-line argument by using the value stored on the stack at 8(%esp) when your program begins execution, assuming this value is nonzero (i.e., the user remembered to supply an argument). ________________________________________________________________________ Allan B. Cruse University of San Francisco Spring 2006 YEAR 2007 ---------------------- ---------------------- ---------------------- JAN FEB MAR ---------------------- ---------------------- ---------------------- xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ---------------------- ---------------------- ---------------------- APR MAY JUN ---------------------- ---------------------- ---------------------- xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ---------------------- ---------------------- ---------------------- JUL AUG SEP ---------------------- ---------------------- ---------------------- xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ---------------------- ---------------------- ---------------------- OCT NOV DEC ---------------------- ---------------------- ---------------------- xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx