CPSC 3121: Assembly Language Programming



CPSC 3121: Assembly Language Programming Course DescriptionCPSC 3121. Assembly Language Programming 1 (3-0-3) Prerequisite: CPSC 2105 with a grade of "C" or better. An introduction to assembly language for mainframes or PC's. Topics include machine architecture (registers, memory, instruction formats), character data processing, decimal arithmetic, binary arithmetic, subroutine and program linkage.Course ObjectivesBy the end of this course, You will master a basic working subset of IBM High-level Assembly Language (HLASM) instructions. Mastery is indicated in three ways:a) You can to explain the semantics of each of the instructions in the working subset in clear English sentencesb) You can “describe” the semantics of each of the instructions in the working subset by writing the equivalent code in Java.c) You will write working programs in HLASM that satisfy the requirements of a series of assignmentsYou will be able to identify each of the major components of the IBM architecture and describe their operations in English and by writing Java code.You will acquire some basic mainframe skills in ISPF and in JCL. These skills are indicated by your ability to use the operating system to design and execute programs in HLASM.GradingProgram12345Totals6pts6 pts6 pts6 pts6 pts30 ptsGroup Program123454pts4 pts4 pts4 pts4 pts20 ptsMidtermExam25pts25 ptsFinalExam25pts25 ptsTotals100 ptsTextbook and Reading MateriNo textbook is required for this course. Instead, I will use my own notes and a collection of online lectures that are listed on the website: . Additionally, there are two IBM manuals you will need to use:1) Language Reference: ) Programmer’s Guide: you would like a textbook, I can recommend Programming Assembly Language, IBM 370 Series Architecture and Assembly Language by Peter Abel. The book is no longer in print, but still remains an excellent text for beginning assembly programming, and can sometimes be found for a few dollars in used bookstores online. If you decide to buy one, be aware that the same author has textbooks by a similar name that cover PC Assembly languge – those texts would not help you directly in this class.Attendance PolicyYou are expected to attend class regularly and to participate. I will have something to present in every class that you need to hear. Any student who misses 4 or more classes mayl be dropped from the class for excessive absences.Making up TestsEveryone is expected to take the midterm and final exams at their scheduled times. Make-ups will be given only for legitimate, documented absences for which?the instructor has been notified ahead of time.Submitting ProgramsEach student will be assigned a PDS (mainframe library) where you will build the assembler programs I assign. Each PDS will be named CSUxxxx.SOURCE.ASM where xxxx is a four-digit number that I assign you. Each program you create should be named PROGRAM1, PROGRAM2, …Individually written programs will be automatically graded. Periodically, I will submit a grading program that retrieves your work from your PDS and grades it. The grading software will also notify you of the current grade by posting a member in your PDS. You can change your program up to the due date. The grade you receive once the due date has passed is final.Group projects will consist of building a sequence of assembler instructions by writing Java code that mimics execution of each instruction on a virtual System/z machine that I have written in Java. Group projects will be graded by hand and everyone in the group will receive a grade based on their individual work with the group. Each group will submit one copy of the code and a description of the instructions that each person in the group was assigned. The Java code for the virtual System/z is available for download on the website. You can also find instructions for using the virtual System/z. Grading Rubric For ProgramsI have a simple rubric for grading programs: Program executes properlyProgram is well-commentedProgram is well-written6 ptsProgram executes properlyProgram is well-writtenProgram is poorly commented5 ptsProgram has minor execution errors4 ptsProgram does not execute correctlyProgram assembles properlyProgram could execute properly with a few minor changes3 ptsProgram does not assemble0 ptsE-Mailing MeYou can e-mail me here: woolbright_david@columbusstate.edu . Caution: My son is a student at CSU and has an e-mail address that is similar to mine. Be sure to choose my address when writing me.Why This Course Is ImportantEvery programmer worth their salt thoroughly understands the instruction set architecture of the machine on which they operate. The IBM System/z family is a great machine with an architecture that has proven its durability over 50 years of existence. No other architecture comes close to this record. The System/z has the advantage of being a simple but flexible architecture that is easier to learn than the x86 family. Once you learn the System/z architecture, you will be able to make reasonable comparisons and judgments about other architectures like the x86.Writing in assembler will give you an appreciation for the work that a compiler or interpreter does. Mainframe skills are on the upsurge. The job market needs and will reward programmers and managers who take time to pick up some mainframe skills.Gaining mainframe experience is increasingly difficult to come by. We are one of a handful of universities in the US that can give you this experience. Buying this experience in the marketplace would cost thousands. Course Outcomes and Assessment MethodsCourse OutcomesAssessment MethodYou will be able to write assembly language programs of moderate difficulty using IBM’s HLASMFive programming assignments covering basic assembly language concepts will be given and gradedYou will be able to describe in English, the semantics of a working subset of assembler instructions.You will have to demonstrate this skill on the midterm and final examinationsYou will be able to describe the architecture of an IBM System/z machine.You will have to demonstrate this skill on the midterm and final examinationsYou will demonstrate knowledge of the semantics of a working subset of assembler instructions by writing equivalent code in Java You will be asked to write the code that simulates execution of each instruction on a virtual System/z machine that is written in Java. There will be a series of five group assignments that assess this skill. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download