COE 205 Computer Organization & Assembly Language
Term 042

SEC

TIME

Location

1

SMW 1:10 AM 2:00 AM

24-133

Catalog Description

Introduction to computer organization. Octal and Hexadecimal number systems, ASCII codes. Assembly language programming, instruction format and types, memory and I/O instructions, arithmetic instructions, addressing modes, stack operations, and interrupts. ALU and control unit design. RTL, microprogramming, and hardwired control. Practice of assembly language programming.

      Prerequisite: COE 200 and ICS 201

Course URL   http://assembly.pc.ccse.kfupm.edu.sa 

printable version of the online material

Text Books:

        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).

Grading Policy                  

Homework Online submission is required (WebCT) 5%
Programming Assignments Demonstration may be required 10%
Quizzes Pop quizzes. be ready every class 10%
Major Exam I Thursday March 24th 9:30am 20%
Major Exam II Thursday May 12th 9:30am 20%
Final Exam TBA 20%
LAB Subject to normalization 20%
TOTAL   105%

                                                

Week

Topic

12-16

FEB

Introduction to Computer Organization & Assembly Language

Assembly language versus high level language programming   Lecture 1, Lecture 2, Lecture 3

Basic Components: processor, memory, bus, input and output devices

19-23

FEB

Review of Internal Data Representation

Unsigned & signed integer representation, Integer arithmetic, carry, and overflow, Character representation

26 FEB

2 MAR

Assembly Language Concepts

Statements, directives versus instructions, program structure, Variable and array declarations, constant definitions, I/O using interrupt 21H.

5-9

MAR

Assembly Language Concepts

Memory segmentation: logical and physical addresses, Intel x86 16-bit and 32-bit registers and architectures, Instruction formats, opcodes and operands, Addressing modes

12-16

MAR

Assembly Language Instructions

Data movement instructions, Arithmetic instructions and flags, Logical and bit manipulating operations,

19-23

MAR

Assembly Language Instructions

Logical and bit manipulating operations, Compare, jump, and loop instructions

24 MAR

Major Exam I 9:30am

26 -30

MAR

Assembly Language Programming

Implementing conditional statements and loops in assembly language, Pentium Memory Addressing Modes

2-6

APR

Assembly Language Programming

Traversing and processing arrays, String processing

7-15

APR

Midterm brake

16-20

APR

Procedures and the Stack

Pentium implementation of the stack, Stack operations, calling and returning from a procedure

23-27

APR

Procedures and the Stack

Writing procedures, Parameter passing, Local variables, Macros

30 APR

4 MAY

Interrupts and I/O

Software, hardware, and processor interrupts, Interrupt processing

7-11

MAY

Interrupts and I/O

Peripheral support chips, Direct Memory Access (DMA)

12 MAY

Major Exam II 9:30am

14-18

MAY

Processor and Control Unit Design

Register transfer, Data-path design, 1-bus, 2-bus, and 3-bus organizations, performance considerations.

21-25

MAY

Processor and Control Unit Design

Fetch and execute control sequences at the register transfer level, Hardwired control unit design, Horizontal and vertical microprogramming

28 MAY

1 JUNE

Processor and Control Unit Design

Microprogrammed control unit design, Instructions sets and formats, examples of instruction set design.

4-14

JUNE

Final Exam