KING FAHD UNIVERSITY OF PETROLEUM & MINERALS
COLLEGE OF COMPUTER SCIENCES & ENGINEERING
COMPUTER ENGINEERING DEPARTMENT
COE 205 Computer Organization & Assembly Language
Instructor Dr. Adnan Gutub. Email: adnangutub 'at' gmail.com
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
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
Attendance, Quizzes & Assignments 20%
Exam I 15%
Exam II 20%
· 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.
Introduction and Information Representation.
Introduction to computer organization. Instruction Set Architecture. Computer Components. Fetch-Execute cycle. Signed number representation ranges. Overflow.
Assembly Language Concepts.
Assembly language format. Directives vs. instructions. Constants and variables. I/O. INT 21H. Addressing modes.
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.
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.
Instruction Set Formats.
Fixed vs. variable instruction format. Examples of instruction formats.