CS401 : Computer Architecture and Assembly Language Programming

Course Overview

Course Synopsis

This course focuses on machine-independent assembly language programming and basic architecture of computer systems including fundamental concepts such as register structure, memory organization, addressing modes, organization of peripherals, and machine-level operations. These concepts are integrated through the use of assemblers, linkers and loaders. Students will learn how to write and debug programs using assembly language programming and how to interface assembly language code to C/C++ programs. Students will also learn some basic Boolean logic and how it applies to programming and computer hardware.

Course Learning Outcomes

At the end of the course, you should be able to:

  • Describe the basic functionalities and limitations of computer system
  • Explain the concepts related to computer architecture
  • Explain how high-level languages implement arithmetic expressions, loops, and logical structures at the machine level
  • Write and debug programs using Assembly language programming


Course Calendar

1 Introduction to Assembly Language 1
2 Introduction to Assembly Language 2
3 Introduction to Assembly Language 3
4 Segmented Memory Model
5 Data Declaration and Direct Addressing
6 Indirect Addressing
7 Addressing Modes
Assignment No. 1
8 Branching
9 Unconditional jumps and relative addressing
Quiz No. 1
10 Bit Manipulations
11 Multiplication in Assembly Language
12 Bitwise Logical Operations and Masking Operations
13 Subroutines
14 Stack and its Operations
15 Parameter Passing Through Stack and Local Variables
Assignment No. 2
16 Display Memory
17 Display Memory and Number Printing in Assembly
18 Screen Location Calculation
19 Clearing the Screen and String Printing
20 Screen Scrolling and string Comparison
21 (Continue) Screen Scrolling and string Comparison
Quiz No. 2
22 Interrupts Handling
23 BIOS and DOS Interrupts
24 Hardware Interrupts
25 Ports
26 Interrupt Chaining and Terminate and Stay Resident
27 Programmable Interval Timer and Parallel Port
28 Debugger using single step interrupt
29 Debugger using single step interrupt 2
30 Concepts of Multitasking
31 Multitasking Kernel as TSR
32 Concepts of Multitasking-II
33 BIOS Video Services
34 DOS Video Services 2
Graded Discussion Board
35 Storage Access Using BIOS
Quiz No. 3
36 Storage Access using DOS
37 Device Drivers
38 Serial port programming
Quiz No. 4
39 Protected Mode
40 Code and Data Segment Descriptor
41 32bit Programming
42 VESA Linear Frame Buffer
43 Interrupt Handling
44 Interfacing with High level languages
45 Comparison with other processor