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

 

 

PDF

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     

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 Policy

 

         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.