CMPE 102: Assembly Language Programming San Jose State University
Fall 2024
Course Information:
3 Units | Prerequisite: CMPE 50 or CS 46B with grade of C- or better.
Location/Days/Times: ENG 325 Wednesday 6 PM - 8:45 PM
Office Hours: 30 min before class and after, or by appointment
Instructor Information:
Name: Shungkai Michael Lam
Email: Michael.lam01@sjsu.edu
Course Materials:
Course materials such as syllabus, handouts, notes, assignment instructions, etc. are available on Canvas, Portal https://one.sjsu.edu, http://db4.us/cmpe102 (backup)
Course Description:
Assembly programming; assembly-C interface; CPU and memory organization; addressing modes; arithmetic, logic and branch instructions; arrays, pointers, subroutines, stack and procedure calls; software interrupts; multiplication, division and floating-point arithmetic.
Course Learning Outcomes:
Upon successful completion of this course, students will be able to:
1. Describe how IA-32 instructions interact with the X86 processor: CPU, memory through different addressing modes
2. Perform conversions among binary, decimal and hexadecimal number systems
3. Code in IA-32 assembly to solve introductory programming problems, using arithmetic, logic, and branch instructions.
4. Code in IA-32 assembly to call subroutines and C functions
5. Code in IA-32 assembly to invoke software interrupts
6. Code in IA-32 assembly to do floating point arithmetic
Course Requirements:
SJSU classes are designed such that to be successful, it is expected that students will spend a minimum of forty-five hours for each unit of credit (normally three hours per unit per week), including preparing for class, participating in course activities, completing assignments, and so on. More details about student workload can be found in University Policy S12-3 at http://www.sjsu.edu/senate/docs/S12-3.pdf.
University policy F69-24 at http://www.sjsu.edu/senate/docs/F69-24.pdf states, “Students should attend all meetings of their classes, not only because they are responsible for material discussed therein, but because active participation is frequently essential to insure maximum benefit for all members of the class. Attendance per se shall not be used as a criterion for grading.”
Grading Distribution:
Your grade will be calculated as follows:
. Quizzes/Labs (best 10): 20%
. Projects (4): 20%
. Midterm Exams (2): 30%
. Final Exam: 30%
. Total: 100%
Grading Scale:
97 - 100 A+
93 - 96 A
90 - 92 A
87 - 89 B+
83 - 86 B
80 - 82 B
77 - 79 C+
73 - 76 C
70 - 72 C-
67 - 69 D+
63 - 66 D
60 - 62 D
0 - 59 F
Policy on Respect and Insubordination:
Students who disturb the peace and harmony in class, behave disrespectfully to the instructor or his/her fellow students will be immediately dismissed from the class and reported to student affairs for disciplinary action.
Policy on Cheating:
A student or students involved in a cheating incident in a test, homework, report, or lab project will receive an F in the course and will be reported to the judicial affairs office and subjected to disciplinary action.
Dropping and Adding:
Students who do not provide documentation of having satisfied the class prerequisite and co-requisite requirements (if any) by the second-class meeting will be dropped from the class.
Attendance: Attendance is mandatory. Please email me if you need to miss a class.
Textbook:
. Title: Assembly Language for x86 Processors
. Edition: 8th
. Authors: Kip Irvine
. Copyright: 2020
. Publisher: Pearson
Course Schedule:
The schedule is tentative and subject to change with fair notice posted on Canvas.
Course Outline:
Week Date Topics
1 8/21 Introduction of assembly languages, number systems.
2 8/28 X86 Processor Architecture
3 9/4 Assembly Language Fundamentals
4 9/11 Data Transfers, Addressing, and Arithmetic
5 9/18 Conditional Processing
6 9/25 Midterm1
7 10/2 Integer Arithmetic
8 10/9 Procedures
9 10/16 Advanced Procedures
10 10/23 High-Level Language (C) Interface
11 10/30 Strings and Arrays
12 11/6 Midterm 2
13 11/13 Software Interrupt
14 11/20 Floating Point Arithmetic
15 12/4 Review