Academics / Courses / DescriptionsCOMP_ENG 205: Fundamentals of Computer System Software
VIEW ALL COURSE TIMES AND SESSIONS
Prerequisites
Freshman programming requirement. COMP_ENG 203 helpful.Description
CATALOG DESCRIPTION: Basics of assembly language programming and instruction set architectures. System stack and procedure calls. Techniques for writing assembly language programs. The course covers ARM32 instruction set and basic I/O. Interfaces between high-level languages and assembly codes will be discussed.
REQUIRED TEXTS: None
REFERENCE TEXTS: None
COURSE INSTRUCTORS: Prof. Russ Joseph (Winter)
COURSE GOALS: To teach (1) the ARM32 processor architecture and programming, (2) assembly language directives, operators, and program structure, (3) programming methodology, showing how to use assembly language to create both system-level software tools and application programs, and (4) interaction between assembly language programs and the rest of the system.
PREREQUISITES: First-year programming requirement or equivalent. COMP_ENG 203 helpful.
PREREQUISITES BY TOPIC:
1. Fundamental concepts about computers and software
2. Programming concepts of high-level languages
3. Syntax of a language
4. Structured programming
DETAILED COURSE TOPICS
- Introduction to assembly languages, data representation in computers
- Programmer's view of computer organization, ARM32 processor architecture and memory management, basic elements of assembly language
- Data definition and transfer instructions, addressing modes
- Integer addition, subtraction, and multiplication
- Unconditional and conditional branch instructions, condition codes
- Conditional structures, loops
- Stack operations, procedures
- String operations, data layout, bit manipulation
- Basic I/O operations
GRADES:
- Quizzes: 30%
- Programming Assignments: 30%
- Final exam: 30%
- Class participation: 10%
COURSE OBJECTIVES: When a student completes this course, they should be able to:
1. Write efficient procedures and small programs in ARM32 assembly.
2. Understand the layout of code and data in memory.
3. Understand how the runtime stack is managed.
ABET CONTENT CATEGORY: 100% Engineering (Design component)