CMPS 224 Assembly Language Programming
Catalog Description
CMPS 224 Assembly Language Programming (5)
Introduction to operations on binary numbers, machine architecture and assembly language programming; covers MIPS and x86 instruction set architectures. Prerequisite: CMPS 221.
Prerequisites by Topic
Programming skill in a high level language such as C/C++/Java.
Units and Contact Time
5 quarter units. 4 units lecture (200 minutes), 1 unit lab (150 minutes).
Required for CE, CS and EE.
Required Textbook
Appendix A from Computer Organization & Design by Patterson & Hennessey; 3rd Ed. Appendix A is available online. If you purchase the latest edition of Computer Organization & Design, the material is in Appendix B.
Recommended Textbook and Other Supplemental Materials
Additional material will be available online.
Donna Meyers, Dr. Wei Li
Student Learning Outcomes
This course covers the following ACM/IEEE Body of Knowledge student learning outcomes:

CC-AR: Architecture and Organization
CE-CAO: Computer Architecture and Organization

ABET Outcome Coverage

The course maps to the following performance indicators for Computer Science (CAC/ABET) and Computer Engineering (EAC/ABET) and Electrical Engineering (EAC/ABET):

(CAC PIb1): Identify key components and algorithms necessary for a solution.
Take-home final project.
(CAC PIb2): Produce a solution within specifications.
Take-home final project.
(CAC PIc4): Implement the designed solution for a given problem.
Take-home final project.
(CAC PId4, EAC PId4): Meet deadlines and achieve project goals.
Take-home final project.
(EAC PIc1): Follow systematic and logical design procedures and define specifications to meet project requirements.
Take-home final project.
Lecture Topics and Rough Schedule
Week 01 operations on binary, octal and hexadecimal numbers
Week 02 arithmetic, shift & rotate operations
Week 03 subroutine linkage & call frames
Week 04 instruction encoding, jumps & branches
Week 05 program optimization
Week 06 logical and bit-field operations & condition testing
Week 07 multiplication, division, branch delay slot
Week 08 intro to x86-32
Week 09 intro to x86-64
Week 10 x86-64 code optimization

Grading Policy
                                        A  90%
                                        B+ 87%
      Lab/Hw Assignments ........15%    B  83%
      Midterm 1 .................30%    B- 80%
      Midterm 2 .................30%    C+ 75%
      Final Project..............25%    C  70%
                                        C- 60%
                                        D+ 55%
                                        D  50%
                                        D- 40%
                                        F  below 40% 
Estimated ABET Category Content
EAC/CAC Math and Basic Sciences 1 Credit Hour
CAC Computing/EAC Engineering Topics 2 Credit Hours Fundamental
Prepared By
Donna Meyers on January 23, 2014
Approved by CEE/CS Department on January 31, 2014
Effective Wtr 2014