Students are expected to read both CO-2103 Introduction to Assembly Language and CO-2206 Introduction to Computer Organisation in parallel. The two courses complement each other.
Acknowledgement: The course materials have been curated from various sources including books, online resources and teaching materials from other lecturers. Please see the acknowledgement in Introduction slides.
Course Content (Lectures):
- Introduction
- Background Knowledge
- Digital Logic
- Number Systems
- Binary, Octal, Decimal, Hexadecimal
- Conversion between number systems
- Basic arithmetic operations
- Data Representations
- Integer – signed/unsigned, sign & magnitude, 1’s, 2’s complement, BCD, biased
- Real – floating point
- Text – ASCII
- Intel 8086 Microprocessor
- Introduction to Processors
- Brief History
- Processor Differences
- Basic Intel 8086 Architecture
- Specifications
- Registers
- Memory System
- Segmentation
- Memory Access
- Input/Output
- Accessing/addressing
- IO Schemes
- Interrupt
- Hardware
- Software
- Fetch-Execute Sequence
- Introduction to Processors
- Intel 8086 Assembly vs Machine Language
- Assembly vs Machine Language
- Intel 8086 Instruction Set
- Groups
- Instruction format
- Addressing modes
- Translation between AL and ML
- Manual Coding
- Basics of 8086 Assembly Language Programming
- Tools in AL Programming
- AL Programming Process
- “Hello World!” in AL
- Skeleton in brief
- Elements of AL Programs
- Statement
- Label
- Directive / Pseudo-Opcode
- Software Interrupt (Function Call)
- Important AL Techniques
- Indirect Addressing
- Logic Control Structures
- STACK
- Subroutine / Procedure
- AL Directives / Operators
- Source Code Formatting Directives
- Symbolic Constants
- Program Data and Storage
- Naming Storage Locations
- Defining Data (Storage)
- Data-Related Operators and Directives
- Intel 8086 Instructions (Reference)
- Interrupts INT (Reference)
Tutorials:
- Tutorial 01: Introduction and Background (Solution)
- Tutorial 02: Floating Point (Ex01, Ex02)
- Tutorial 03: Manual Tracing (Solution)
- Tutorial 04: Simple AL Programming (Ref, Solution)
- Tutorial 05: Instruction Encoding (Solution)