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: 

  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, 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:

  1. Basic assembly programming.  Basic memory allocation and input/output
  2. Design of an assembly language program with structured programming
  3. Design of an assembly language program with advanced procedures
  4. Design of an assembly language program for string processing

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)