代写 assembly CS237 Spring 2019

CS237 Spring 2019
Machine Organization & Assembly Language Programming

Programming Assignment #1
75 Points
Due Date/Time:
Your program will be due on Tuesday, March 5th at the beginning of class (2:00 P.M.).
This first assignment is designed to help you become familiar with the assembly language programming environment, and learn the basics of memory organization and assembly language.   For this assignment, you will read a user birthdate of the form MM/DD/YYYY from the keyboard, and then print the English month in which the person was born. That is, if the user types 09/14/1999 then your program will print You were born in the month of September.

IMPORTANT:    The name of your source code file must be prog1.s. Note that UNIX is case sensitive. You must NOT name your file Prog1.s or PROG1.s.
To submit your program you must:
• Put a copy of the source code file prog1.s in the handin/ subdirectory in your class account.
Be sure that your follow the directions in the Submission Guidelines (Course Documents link) page and also verify that your program assembles and runs on edoras. Programs that do not assemble or assemble with errors will receive no credit.
The timestamp on your file will be used to determine the date/time of submission.
Program Details:
You will write a program in Motorola M68000 assembler that does the following.   First, the program will print the programming assignment number, your name, and your class account, all on one line.   Then your program will prompt the user to enter his/her birthdate in the form MM/DD/YYYY. Then your program will print “You were born in the month of xxxx.”   where XXXX is the English month and a period. You may not have any blank spaces between the month and the period that follows. 

Example output:


Program #1, Alan Riggins, csscxxxx

Enter your birthdate in the form MM/DD/YYYY
09/05/2000

You were born in the month of September.


Additional Details:

• There is no hardcopy submission. Do not submit a prinout of your assignment.
• Your program must assemble with no errors or warnings, and run without failure on edoras to get any credit.
• You need not handle backspaces. If the user ‘corrects’ an input error with a backspace the result will be (and should be) garbage.
• Your program does not need to do any error checking.  You may assume that the input value is a valid date in the format specified.   If the user enters garbage or an invalid date, we expect the output to be garbage.
• Remember that any time you read input from the keyboard via linein you must have allocated a buffer of at least 80 bytes.
• Your answer output line must be all on one line, as in the example.  Also note that the answer string has a period on the end.
• Remember that all strings you print must be null terminated.
• You may not use any loop or branch instructions (you don’t need them).

Late Programs:
Late programs will be accepted with a penalty of 5% per day for seven days after the due date. 



Cheating Policy:
There is a zero tolerance policy on cheating in this course.   You are expected to complete all programming assignments on your own.  Collaboration with other students in the course is not permitted.   You may discuss ideas or solutions in general terms with other students, but you must not exchange code.   (Remember that you can get help from me or the TA.   This is not cheating, but is in fact enouraged.)   During the grading process we will examine your code carefully.  Anyone caught cheating on a programming assignment or on an exam will receive an “F” in the course, and a referral to The Office of Student Rights & Responsibilities.