CS-255: Computer Organization and Assembly Language Outlines
Title Computer Organization and Assembly Language
Code CS-255
Course Muhammad Jabbar
Coordinator
Credit Hours 3.0
Theory/week:
Weight 3 Cr. Hrs.
Contact Hours 3 Hrs.
Lectures: 2
Aims and Understanding about low level language and High level language
Objectives Understanding about Intel 8086 architecture.
Understanding about Intel processor family
Understanding about MASM (Microsoft assembler)
Writing code in assembly language using MASM
Understanding about File Operations
A one semester course that provides Computer Science and Information
Technology students with material fundamental to the design and analysis of
digital circuits. This course introduces the Assembly Language to lay the
framework for strengthening the understanding of computer building blocks.
Course
Computer fundamentals, computer organization and different components of
Description
computer are studied along with their constituent elements comprising CPU
organization, memory managements and RISC CISC architecture. The course
provides necessary information to the students for future study of computer
Architecture, Organization, and Assembly language.
Text Books Irvine, Assembly Language for Intel-based Computers, 8th ed, Prentice
Hall.
W.Stallings, "Computer Organization & Architecture", 8th ed, Prentice
HALL, 2007.
Reference Barry B. Brey, “The Intel Microprocessors” 8th ed, Pearson, 2009.
Material
Topics covered in this course.
Introduction to Computer Organization
Introduction to Assembly Language
Low-level vs. High-level languages
Registers (General & Special Purpose)
RAM, Processor, System Bus
Instruction Execution Cycle
Assembly vs. Machine Language
Assembler, Linker, Link Libraries
Programmer's View of a System
Physical Address Calculation
Assembly Language Elements: Constants (Integer, Real, Char, String), Expressions
Basic Memory Organization
CPU Organization
Reserved Words, Identifiers
Directives, Instructions
NOP Instruction
Instruction & Execution Cycle
Interrupts and Interconnection
Memory & I/O Connections
CPU Connection
ADD, SUB, INC, DEC, NEG Instructions
Assembler Introduction: MASM, NASM, MIPS
MASM Setup
Data Definition in MASM
Add/Subtract Command Implementation
Register Usage
Variable Declaration/Initialization
Data Movement
Data Types: BYTE, WORD, DWORD, etc.
Input from User
Output to Screen
Character Operations
Operand Types
Direct Memory Operands
Sample Code Practice in MASM
Division, Multiplication
Jumps Based on Flags & Equality
Jump Statement Practice in MASM
Conditional Jumps
Arrays: Byte, Word, DWORD
Array Practice in MASM
MASM Loops: Simple, LOOPZ, LOOPE, LOOPNZ, LOOPNE
Loop Practice in MASM
Procedures, Labels
Stack Operations: PUSH, POP
Runtime Stack
Stack Practice in MASM
Conditional Control Flow
Compound Expressions
Data Representation & Conversion
Practice on Control Flow
File Handling: Open, Close, Read, Write, Seek
File Handling Practice in MASM
RISC vs. CISC Architectures