CSIS 12/12L Assembly language Programming, late August 2014

 

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 is an hybrid class, (lectures or online), with lectures Monday evenings. I am also at the Morgan Hill site 3 evenings (Sunday/Monday/Tuesday) during the Fall semester, where you can get help on the homework. The lab at the Morgan Hill site is available for you to work during that time. You can also get access to computers at any of the three sites (Gilroy, Hollister, or Morgan Hill) when they are open.

 

Course welcome page: http://hhh.gavilan.edu/dvantassel/csis12/welcome12.html


Office Hours: I will be at the Morgan Hill site 3 evenings (Sunday/Monday/Tuesday) during Fall semester, where you can get help on the homework. The lab at the Morgan Hill site is available for you to work during that time. You can also get access to computers at any of the three sites (Gilroy, Hollister, or Morgan Hill) when they are open.

 

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: The newest edition is Assembly Language for x86 Processors (6th edition, 2010, ISBN-10: 978-0-13-602212-1 ). There are older editions available on the Web and the editions have changed very little: Assembly Language for Intel-Based Computers (5th Edition, 2006, ISBN 0-13-238310-1), or (4th Edition, 2002, ISBN: 0-13-091013-9) . The 4th edition of the book came with a CD that has the MASM compiler on it. If you try to buy this older edition and want the compiler, make sure the book includes the CD. 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. 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 June 02, 2014.