Princes Nora Bint Abdul Rahman University
Dept. of Computer & Information Sciences
CS 321
Computer Organization & Assembly Language
Lecture 1
(Course Introduction)
Course Introduction
• Instructor: Sarah AL-Hammad
• Location: Room no. 2027 ( 2nd floor)
• e-mail: [email protected]
• Credit Hours: 3
Course web site:
http://cs321.yolasite.com
Course Introduction
Course Introduction
Text Book Part I:
Microprocessor Theory and Applications with 68000/68020 and
Pentium by M.RAFIQUZZAMAN,WILEY,2008
Text Book Part II:
-IBM PC Assembly Language and Programming, by Peter
Abel,2001
-Assembly language step by step, by Jeff Duntemann,1992
Alternative:
Assembly Language Programming and Organization of the IBM
PC, Ytha Yu and Charles Marut
Course Introduction
Course Assessment
Assessment
Week Due
Proportion of Final
Assessment
Assessment Task
1
Major exam 1
Week 7
10%
2
Major exam 2
Week 12
15 %
3
Project
Week 11
5%
4
Lab exercise and Quizzes
Every Week
5%
5
Programming Homework
Every 2 Weeks
5%
6
Final Lab
End of Semester
20%
7
Final exam
End of Semester
40%
Note: NO MAKEUP EXAM/QUIZ WILL BE TAKEN
ZERO WILL BE GIVEN TO STUDENTS WHO COPY ASSIGNMENTS
Course Introduction
Lecture Outline
• Part I: Computer Organization
• Part II: Assembly Language
• Reading: Class Notes
Course Introduction
Part I: Computer Organization
• Main hardware components and their relation to the software.
• What the computer does when it executes an instruction.
Course Introduction - Part I: Computer Organization
Part I: Topics to be covered
•
•
•
•
•
•
•
•
•
Introduction to computer organization
Processors
Memory Organization
Memory hierarchies
Input/output
Buses
DMA
Interrupts
Reading and writing operations
Course Introduction - Part I: Computer Organization
= Machine that can solve problems
HOW?
YOU tell it what to do~~ IN A PROGRAM!!!
•A collection of instructions.
•The instructions are a series of 1’s and zero’s that control
the internal circuitry of the processor.
0010100110101001001
1101011011110100101
1101101010000100110
1000001001001001101
•The instructions are written in a language called:
Machine Language
• Difficult and tedious for people to use because of simplicity
• A large
gap between what is convenient for
People and what for computers
• People want to do X but computers limitation is
only to Y



General
Architecture
allows multiple
programs to
run
Processor
Control unit
Datapath
ALU
Controller
Control
/Status
Large, complex
components to
interact
Too tedious to
write all this in
machine
code!!!
Registers
PC
IR
I/O
Memory
Part II: Assembly Language
Computer languages
Machine Language
Assembly Language High-Level Language
Collection of binary
numbers
Symbolic form of machine
language (I.e. symbolic
names are used to represent
operations, registers &
memory locations
Combines algebraic
expressions & symbols taken
from English language
(ex. Pascal, COBOL
FORTRAN, …etc)
Ex.
Ex.
Ex.
10100001 00000000 00000000 MOV AX,A
00000101 00000100 00000000 ADD AX,4
10100011 00000000 00000000 MOV A,AX
Course Introduction - Part II: Assembly Language
A=A+ 4
Computer languages (Continue)
Machine Language
Directly understood by a
computer
Not standard (I.e. different
machine language for
every type of machine
Assembly Language High-Level Language
Assembler
converts to machine
language
Compiler (or interpreter)
converts to machine
language
1 assembly language
instruction = 1 machine
1 HLL instruction = many
machine language
language instruction
instructions
Not standard (I.e. different
assembly language for
every type of machine)
Standard (I.e. programs are
independent of the machine
on which they will be
executed)
Course Introduction - Part II: Assembly Language
Advantages of Assembly Language
• Performance:
• A well-written Assembly language program produces a faster,
shorter machine language program.
For Some applications speed and size is critical
• Access to hardware:
•Some operations, such as reading or writing to specific
memory locations & I/O ports can be done easily in Assembly
but may be impossible by a higher level language.
• Studying ASM language gain a feeling of the way the computer
thinks and the way things happen inside the computer.
Course Introduction - Part II: Assembly Language