CMPE 221 Assembly Language Programming &
Instruction Set Architecture
Syllabus
Fall Semester 2024
Dr. Roger Doering
Office: SF 534 by appointment only
Office Hour Zoom: Link
Office Hours: MTWTh 2:00-2:50pm;
or by appointment on Zoom
Phone: 885-4192.
e-mail: Roger.Doering@csuEastBay.edu
http://cox.csueastbay.edu/~rdoering/
Classes: Two class meetings per week, TTh 11:00am-12:15pm co-sync. Sc N104 or only if you are symptomatic on Zoom link.
Units: 3
Prerequisite: An introductory programming course, i.e. CS 101 - Computer Science I or equivalent.
Grade basis: attendance-- 5%; homework -- 15%; 1 midterm -- 25% ; 1 Project 25%; final -- 30%; curved.
Late homework - discounted at 1% per hour late. Work will not be accepted after 100 hours without a documented excusable absense.
Catalog Description: Functional organization of digital computers and programming in machine and assembly language. Internal representation of data, binary arithmetic, machine instructions, addressing modes, subroutine linkage, macros. Introduction to assemblers, linkers, and loaders.
Text: Computer Organization and Assembly Language Programming for MIPS, 2nd Ed, Roger W. Doering and Robert L. Britton, available only from CopyPacific
additional reference: The Art of Assembly Language by Randall Hyde : http://webster.cs.ucr.edu
Material to be covered:
Machine Architecture
System Organization
Memory Access and Organization
CPU Architecture
Instruction Set Architecture
Memory Architecture
The I/O Subsystem
Basic Assembly Language:
Constants, Variables, and Data Types
Characters and Character Sets
Arrays
Introduction to Character Strings
Records, Unions, Files
Introduction to Procedures
Managing Large Programs
Integer Arithmetic
Floating Point (real) Arithmetic
Calculation Via Table Lookups
Control Structures
Stack
Recursion
memory mapped I/O
Floating Point
Learning Outcomes:
Knowledge
Comprehension
Application
Evaluation
Synthesis
Analysis
The "University Policies (Common Syllabus Items)" presented on Canvas with this syllabus are hearby included by reference.
Academic Dishonesty (Cheating): Copying of code from another student, or from on-line resources, or a book other than the printed examples in the textbook is not allowed on homework or exams. Submission of such code will result in a zero score for the assignment, and a filing of an Academic Dishonesty report.
Note that CS and ENGR department rules will prevent you from getting a work-study, Co-op job, or serving as a teaching assist/reader if you have a single report filed against you. Proper attribution of public domain code or instructor's code will be required in comments preceding that code for your project.
ABET info:
CMPE 221: Assembly Language & ISA
Credit hours: 3
Contact hours: 2 hr 30 minutes lecture
Required texts:
Doering & Britton, Computer Organization and Assembly Language Programming for MIPS,
Copy Pacific (Hayward, CA), 2009.
Specific course information:
• Catalog description: Functional organization of digital computers and programming
in machine and assembly language. Internal representation of data, binary arithmetic,
machine instructions, addressing modes, subroutine linkage, macros. Introduction to
assemblers, linkers, and loaders.
• Pre-requisite: An introductory programming course
• required for Computer Engineering program
Specific outcomes of instruction:
*Upon completion of the course, students will be able to demonstrate the ability to:
1) Understand basic functional units of computer processors
2) Understand the functions of compilers, assemblers, and linkers
3) Understand and apply binary and hexadecimal number systems to assembly language
programming
4) Develop pseudo-code and efficient algorithms to address problems that can be solved using a
computer programs.
5) Connect between low-level assembly language to high-level programming languages
6) Understand and develop programs using stacks and dynamic memory
7) Understand and develop programs using devices outside of the CPU
8) Understand and develop programs that handle Exceptions and Interrupts
9) Program using a MIPS assembly language simulation software
Relation to ABET Student Learning Outcomes
This course allows students to apply their knowledge of basic mathematical principles to create
assembly language programs. The programs function as systems designed to satisfy input/output
constraints, specified in problem statements. Throughout the course, students use an assembly
language program development software, which consists of a compiler and a set of tools to
facilitate program development.
The course addresses the following ABET student learning outcomes:
Outcome (a): An ability to apply knowledge of mathematics, science and engineering
Outcome (c): An ability to design a system, component, or process to meet desired
needs within realistic constraints such as economic, environmental, social, political,
ethical, health and safety, manufacturability, and sustainability
Outcome (e): An ability to identify, formulate, and solve engineering problems
Outcome (k): An ability to use the techniques, skills, and modern engineering tools necessary for
engineering practice.
List of Topics:
1) Binary and Hexadecimal number systems
2) Basic MIPS CPU computer organization concepts
3) Efficient algorithm development
4) Assembly and Machine-code representations of MIPS instructions
5) Programming with MIPS instructions
6) Functions calls using stacks
7) Reentrant and recursive functions
8) Memory mapped I/O
9) Exceptions and interrupts
10) Floating-point instructions