|
EECS 205 - Fundamentals of Computer System Software |
||
|
COURSE TITLE: EECS 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, 5th edition, Pearson Education, Inc., 2007. 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). EECS 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 Week 1: Introduction to assembly languages, data representation in computers Week 2: A programmer's view of computer organization, IA-32 processor architecture and memory management, basic elements of assembly language Week 3: Data definition and transfer instructions, addressing mode, integer addition and subtraction Week 4: Integer multiplication and division, unconditional jump instructions, conditional processing Week 5: Linking to external library, stack operations, procedures Week 6: Advanced procedures, string primitive instructions, bit manipulation Week 7: Structures and macros, conditional assembly, assembly process, instruction encoding Week 8: 16-bit MS-DOS programming basics, MS-DOS function calls Week 9: BIOS-level programming, keyboard processing Week 10: Video processing Week 11: Disk storage systems, file systems LABORATORY PROJECTS: 1. Design of an assembly language program with structured programming 2. Design of an assembly language program with advanced procedures 3. Design of an assembly language program for string processing 4. Design of an assembly language program for keyboard processing GRADES: Homeworks: 30% Programming Assignments: 50% Final exam: 20% 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) |
||