CSIS 12/12L Assembly language Programming, Spring (February) 2010

 

Catalog Description:

Fundamentals of assembly language programming concepts and techniques. Topics include internal representation of data, arithmetic operations, logic statements, and general assembly language commands. Introduce low level language architecture including assemblers, linkage editors, and loaders. This course has the option of a letter grade or credit/no credit.

Units: 4 Hours: 3 Lecture, 3 Laboratory Advisory: CSIS 45 (C++ Programming) or programming experience. Math 233 (Intermediate Algebra)

End of catalog description.

 

This course is a required or recommended class for Computer Engineering and Computer Science majors at many 4-year universities.
This class transfers to both UC and CSU.

Instructor: Dennie Van Tassel

E-mail: dvantassel@gavilan.edu

Class Hours: This Spring 2010 class is a Hybrid class: which means I will have regular lectures but you can also take it as an online course. Lectures are on Tuesday evenings (6 PM) at the Morgan Hill site. So you can sign up for the online or lecture version of the course, then attend lectures if you need them.

 

Office Hours: 1.0 hour before class when this class is meeting. Open computer lab, Sundays, 4:00 – 7:45 PM, at Gavilan Morgan Hill site. The Open Lab is available only during the Fall/Spring semesters, but not during Summer/Winter sessions. The lab is available for you to work during that time.

 

Assignment sheet: If you sign up for the class and tell me, I can e-mail you the assignment sheet for the class so you can start early, but I will not send you the assignment sheet until you sign up for the class. All these class Green Sheets are stored at my campus web site.

 

Campus web address: http://www.gavilan.edu

The web site is good place to look for a wide variety of information, such as college catalog, course description, phone numbers, etc.

 

Instructor class description: This class is an advanced level programming class. We will work through much of the assigned textbook. You will need the textbook the first day of class. This is a difficult class. The material is difficult and there is a lot of homework. You need to know anoher programming language such as taught in our CSIS 45 C++ Programming course.

 

Grading: This course has Credit/No Credit Option. You will normally get a grade in the class, but if you fill out a Credit/No Credit petition before 1/3 of the class has passed, you can take the class for credit/no credit. Petitions are available at the office or registrar. Please tell me if you do request a Credit/No Credit Option. In order to get a Credit, you need to earn at least a C grade.

 

Student Responsibilities: Read the text. You need spend several hours EVERY week on this class. If you disappear AND stop working on this class, I may drop you.

 

Texts & Materials: Assembly language for Intel-Based Computers (4th Edition), by Kip R. Irvine, ISBN: 0-13-091013-9 . There is a newer 5th edition: (ISBN 0-13-238310-1), but it changed very little and the 4th edition is much cheaper. I give you assignments out of the book. There are newer (and older) editions of this book. The newer editions are more expensive and not much different. You can buy this version of the book VERY cheap from www.amazon.com, or www.half.com. When you buy the book, make sure it has the CD, since that has the compiler on it. The assignments and page numbers for this class will match the above 4th edition. If you buy a different edition, you will need to adjust to their page numbers. You can save yourself a lot of wasted time and learn a lot more if you read the textbook.

 

The chapters in the book cover this material:

1. Basic Concepts.

2. IA-32 Processor Architecture.

3. Assembly Language Fundamentals.

4. Data Transfers, Addressing, and Arithmetic.

5. Procedures.

6. Conditional Processing.

7. Integer Arithmetic.

8.  Advanced Procedures.

9.  Strings and Arrays.

10. Structures and Macros.

11. MS-Windows Programming.

12. High-Level Language Interface.

13. 16-Bit MS-DOS Programming.

14. Disk Fundamentals.

15. BIOS-Level Programming.

16. Expert MS-DOS Programming.

17. Floating Point Programming and IA-32 Instruction Encoding.

We usually cover most of these chapters, especially the A students do.

Free software downloads: The assembler is also available from www.masm32.com

The web site: http://www.bloodshed.net/ has a long list of software you can download. Some of this software can be used to do your work at home for our classes. In the Classroom part of this Web site, there are more detailed instructions on obtaining the software for this class.

Assignment: On the computer type up a short note about yourself. Please indicate your name, e-mail address, computer experience, previous programming background, and why you are taking the class. If you do not have an e-mail address, please go to www.hotmail.com and open a free e-mail account. If you want to you can give me your phone number and address, and if you miss class I may send you assignments either through the U.S. mail or e-mail.  Also indicate what grade you plan to get in the class and how you will obtain this grade. Please do this assignment before leaving the first class.

You do not need a computer at home to do this class, but you can do homework outside class on other computers. One of the computer labs in the Business Building on the main Gilroy campus does have the software for this class.

 

Attend class: Do not get behind in the class. The class is accumulative. What you learn this week will be used to do the work next week. If you miss classes you will soon be lost. Plan to miss no classes. Bring your textbook and all handouts to class each meeting.

 

Grading: This course has Credit/No Credit Option. You will normally get a grade in the class, but if you fill out a Credit/No Credit petition before 1/3 of the class has passed, you can take the class for credit/no credit. Petitions are available at the office or registrar. Please tell me if you do request a Credit/No Credit Option. In order to get a Credit, you need to earn at least a C grade.

If you want or need a good grade because you want to transfer to a 4-year school, are on academic probation, want a scholarship, or just want good grades do the work for a good grade. Don’t bother telling me you need a good grade the last week if you have not done the work for a good grade.

Course Learning Outcomes

The student will create, execute, and test assembly language programs using calculations and decision statements. The student will create, execute, and test assembly language programs using loops, arrays, and pointers. The student will create, execute, and test assembly language programs using functions. The student will create, execute, and test assembly language programs using standard input/output, character I/O and file I/O. The student will evaluate and select the best programming method to solve problems.

 

Incompletes: I seldom give incompletes and never give them just because you have not done the work. Almost no one ever finishes an Incomplete. Occasionally, people that have been doing the class work have severe family or personal problems and I do give them an Incomplete.

Drops: If you stop attending class, you must fill out a class drop form or you will get an F grade in the class. This does not do you, me, or the school any good. So if you stop taking the class, drop it at the A&R office.

 

Special needs: If you have special needs such as hearing problem, visual problems, or other needs, please tell me after class and I will try to assist you.

After all that, this is a fun class. You will learn a lot that will help you in your other classes and help you obtain useful job skills. I am interested in suggestions about assignments, lectures, and the material covered.

 

Necessary math skills: If you are having trouble doing the math needed to solve the problems in the programming exercises, then you should take Math 233, Intermediate Algebra. We have noticed that one common reason students do not succeed in programming classes is the lack of math skills need to write programming algorithms. At many 4-year colleges, potential Computer Science (CS) students must take one year of calculus before becoming a CS major.

 

Next classes to take: If you can learn assembly language, all other languages will look easier. If you want to go into programming, Math 5 Introduction to Statistics would be useful.

Address of this page: http://hhh.gavilan.edu/csis/csis12.html
Please feel free to send us your comments and questions.
Send e-mail messages to Dennie Van Tassel at dvantassel@gavilan.edu
Last revised on February 01, 2010.