CS 3333 Assembly Language Programming
Fall 2007, Credit Hrs: 3
General Information
| Instructor: | Hai Jiang | |
| Office: CSM, Room 127 | ||
| Phone: 972-3978 ext. 118 | ||
| Email: hjiang@cs.astate.edu | ||
| Time: | Tue Thu 9:30 - 10:45 a.m. | |
| Location: | CSM, Room 211 | |
| Office Hours: | Tue Thu 10:45 a.m. - 12:30 p.m. & 1:45-2:45 p.m. | |
| Syllabus: | http://www.csm.astate.edu/~hjiang/cs3333/syllabus.pdf | |
| Course Homepage: | http://www.csm.astate.edu/~hjiang/cs3333.html | |
| ( Lecture notes, homework assignments, etc. ) |
Course Description
This course is designed to provide students with an in-depth understanding of the working of an x86 architecture computer by programming at the machine level in Assembly Language. It covers basics of assembly language programming, macros, system stack and procedure calls. The features of IA-32 based PC will be used. At the end of the course, MIPS architecture and assembly language will be discussed briefly as well. Emphasis is on the development of well-structured programs in assembly language. Students will demonstrate knowledge through class participation, programming assignments and examinations. Tentative topics will include:
Introduction to assembly languages, data representation in computers, and a programmer’s view of computer organization
IA-32 processor architecture
Real-address mode and protected mode memory management
Assembly language fundamentals, data transfers, and addressing modes
Integer arithmetic
Conditional processing
Stack operation and procedures
Advanced procedures
Bit manipulation, structures, and macros
Conditional assembly and instruction encoding
MIPS processor architecture
MIPS instructions
Prerequisites
CS 2183 (Structured Programming I), or consent of the instructor
Textbook
|
|
Kip R. Irvine, Assembly Language for Intel-Based Computers, 5th edition, Prentice Hall, 2006 , 752 pages, ISBN: 0132383101. |
References
|
|
Randall Hyde, The Art of Assembly Language, First Edition, No Starch Press, Published September 2003, 928 pages, ISBN: 1886411972. |
|
|
Robert Britton, MIPS Assembly Language Programming, Prentice Hall, Published May 2003, 168 pages, ISBN 0131420445. |
|
|
Robert P. Smith, Assembly Language Programming, Using MIPS RISC R2000/R3000, Arkansas State University, Published August 2003. |
|
|
More course materials will be available on course homepage. Please visit it often for changes and announcements. |
Resources
Kip R. Irvine, Assembly Language Sources, http://kipirvine.com/asm/
Grading
Final grades will be calculated based on the following weights:
| Homework, Programming Assignments and Quizzes: | 30% | |
| Midterm Exams (2): | 40% | |
| Final Exam: | 30% |
The final grade will be distributed as :
A [90-100]
B [80 - 90)
C [70 - 80)
D [60 - 70)
F [0 - 60)
LabSoft
LabSoft system (http://plab.cs.astate.edu/) will be used for homework submission and grading.
Policies
Food and Drinks
Department policy restricts bringing either food or drinks into the classroom.
Electronic Devices
Cell phones are restricted during class. Cell phones must be turned off during the lecture. If your cell phone rings during class, you may be asked to leave. Other devices (computers, recorders, etc.) may be allowed, but you must ask the instructor before you use them during class.
Special Facilities
Students who require academic adjustments in the classroom due to a disability must first register with ASU Disability Services. Following registration and within the first two weeks of class, please contact the instructor to discuss the appropriate academic accommodations to ensure equal access to this course.
Rescheduling Tests
Tests cannot be rescheduled due to testing in other classes. If a test is missed due to extenuating circumstances then you must notify me as soon as possible. The circumstances must be documented by you and must be excusable in order to reschedule a test.
Late Assignments
For most homework assignments, the class will receive a working solution within four days after the due date. NO assignments will be accepted that are more than four days late. Assignments that are less than a week late, will be accepted with certain penalty (25% per day).
Cheating
You are encouraged to discuss problems and programming assignments with each other. Helping others learn is often the most powerful way of mastering material yourself. However, taking somebody else's solution without their knowledge or consent is cheating and will be punished. Do not leave copies of the programming assignments in the trash can in a public place -- throw them away at home or some other private place. Also do not leave your directories unprotected. There are harsh penalties for those found cheating.
Attendance
Attendance is required. If you miss a class, you are responsible for material covered during the class you missed, this includes any assignments made. Note that I do not provide one-on-one instruction for missed classes.