KING
FAHD UNIVERSITY OF PETROLEUM &
COMPUTER ENGINEERING DEPARTMENT
COE 205 Computer Organization & Assembly Language
Syllabus - Term 051
Catalog Description
Introduction to computer organization. Signed and unsigned number representation, character representation, ASCII codes. Assembly language programming, instruction format and types, memory and I/O instructions, dataflow, arithmetic, and flow control instructions, addressing modes, stack operations, and interrupts. Datapath and control unit design. RTL, microprogramming, and hardwired control. Practice of assembly language programming.
Prerequisite: COE 200 and ICS 201
Instructor Dr. Adnan Gutub. Room: 22/145 Phone: 1723 Email: gutub@kfupm.edu.sa
Course Learning Outcomes
1.
Knowledge of basic computer organization, information representation,
and basic assembly language concepts.
2.
Ability to analyze, design, implement, and test assembly language
programs.
3.
Ability to use tools and skills in analyzing and debugging assembly
language programs.
4.
Ability to design the datapath and control
unit of a simple CPU.
5.
Ability to demonstrate self-learning capability.
6.
Ability to work in a team.
Text Books & References
·
Introduction to Assembly Language Programming: From 8086 to Pentium
Processors, Sivarama P. Dandamudi, et al.,
Springer Verlag, 1998. (ISBN: 0387985301).
·
Computer Systems Design and
Architecture, Vincent Heuring, Harry F. Jordan,
Miles Murdocca, Addison Wesley 1997. (ISBN 0-8053-4330-X).
·
Assembly Language Programming
and Organization of the IBM PC, Ytha Yu and Charles Marut,
McGraw Hill, 1992. (ISBN: 0-07-072692-2).
·
Online material:
http://assembly
Grading Policy
Laboratory 20%
Attendance, Quizzes & Assignments 20%
Exam I 15%
Exam II 20%
Final 25%
·
Attendance will be taken regularly.
· There will be a 0.5% grade deduction for every unexcused absence.
·
Excuses for officially authorized absences must be
presented no later than one week following resumption of class attendance.
· Late students can attend, but every 3 late records will be assumed to hold marks as one absent.
Course Topics
1. Introduction and
Information Representation.
Introduction to computer organization. Instruction Set Architecture. Computer Components. Fetch-Execute cycle.
Signed number representation ranges. Overflow.
2. Assembly Language Concepts.
Assembly language format. Directives vs. instructions. Constants and variables.
I/O. INT 21H. Addressing modes.
3. 8086 Assembly Language
Programming.
Register set. Memory segmentation. MOV instructions. Arithmetic instructions
and flags (ADD, ADC, SUB, SBB, INC, DEC, MUL, IMUL, DIV, IDIV). Compare, Jump
and loop (CMP, JMP, Cond. jumps, LOOP). Logic, shift
and rotate. Stack operations. Subprograms. Macros. I/O (IN, OUT). String instructions.
Interrupts and interrupt processing, INT and IRET.
4.
CPU
Design.
Register transfer. Data-path design. 1-bus, 2-bus and 3-bus CPU organization.
Fetch and execute phases of instruction processing. Performance consideration.
Control steps. CPU-Memory interface circuit. Hardwired control unit design.
Microprogramming. Horizontal and Vertical microprogramming. Microprogrammed
control unit design.
5.
Instruction Set Formats.
Fixed vs. variable instruction format. Examples of instruction formats.