COURSE TITLE: ECE 205 Fundamentals of Computer System Software
CATALOG DESCRIPTION: Basics of assembly language
programming. Macros. System stack and procedure calls. Techniques for writing assembly language
programs. The features of IA-32 based
PC will be used. Interfaces between
high-level languages and assembly codes will be discussed.
REQUIRED TEXTS: Kip R. Irvine, Assembly Language for Intel-Based Computers, 4th edition, Pearson Education, Inc., 2003.
REFERENCE TEXTS: None
COURSE COORDINATOR: Wei-Chung Lin
COURSE GOALS: To teach (1) the Intel IA-32 processor architecture and programming, (2) assembly language directives, macros, 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, the operating system, and other application programs.
PREREQUISITES: Freshman programming requirement (GTK 205-1, 2, 3, 4). ECE 203 helpful.
PREREQUISITES BY
TOPIC:
DETAILED COURSE
TOPICS
Week 1: Introduction to assembly languages, data representation in computers, and a programmer’s view of computer organization
Week 2: IA-32 processor architecture
Week 3: Real-address mode and protected mode memory management
Week 4: Assembly language fundamentals, data transfers, and addressing modes
Week 5: Integer arithmetic
Week 6: Conditional processing
Week 7: Stack operation and procedures
Week 8: Advanced procedures and string operations
Week 9: Bit manipulation, structures, and macros
Week 10: Conditional assembly and instruction encoding
LABORATORY PROJECTS:
GRADES:
Quizzes: 40%
Programming Assignments: 30%
Final exam: 30%
COURSE OBJECTIVES: When a student completes this course, s/he should be able to:
1. Understand the difference between real mode and protected mode IA-32 assembly language programming
2. Understand the IA-32 protected-mode addressing memory management schemes including segmentation and paging
3. Program in IA-32 assembly language
4. Write procedures called by high-level languages with IA-32 assembly language
ABET CONTENT CATEGORY: 100% Engineering (Design component)