Academics / Courses / DescriptionsCOMP_ENG 205: Fundamentals of Computer System Software
Quarter Offered
Winter : MTuWF 2-2:50 ; JosephPrerequisites
Freshman programming requirement (GTK 205-1, 2, 3, 4). COMP_ENG 203 helpful.Description
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 x86 Processors, 7th edition, Prentice Hall, 2014
REFERENCE TEXTS: None
COURSE INSTRUCTORS: Prof. Russ Joseph (Winter)
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). 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
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)