Computer Organization &
Assembly Language
Instructor: Nausheen Majeed
Email: [email protected]
Course Objective

To understand organization of a computer system

To gain an insight knowledge about the internal architecture
and working of microprocessors.

To understand working of memory devices, interrupt
controllers and I/O devices.

To learn Assembly Language
2
Course Contents
Introduction to Microprocessors
History & Evolution of Intel Microprocessors
Organization of Intel 8086 Processor
Fetch-Execution Cycle
Microprocessor Bus Structure
Internal Memory, External Memory, Input Output Devices
Instruction Representation
Memory Organization & Structure
Memory Addressing
Cache
Interrupts, DMA
Pipelining












3
Contd..
Introduction of Assembly Language:









Data Declaration
Loop and Jump
Using Arithmetic and Logical Instructions
Using Shift and rotate instructions
Input / Output and display text
Stack and operations on stack
Subroutine and Procedures
Interfacing with High level languages
Overview of Debugger and practice of writing and debugging programs
Using EMU8086 to write and test assembly language programs
Introduction to Microcontroller Programming



4
Text Books

Assembly Language programming and Organization of the IBM PC by Ytha Yu and
Charles Marut.

Computer Organization and Architecture, William Stallings

Kip Irvine, “Assembly Language for Intel-Based Computers”, Third Edition,, Prentice
Hall Incorporated
5
Outline
Introduction to Computer Organization
An Introduction to Microprocessors
History of Intel 8086 Microprocessors
An Introduction to Assembly Language




6
Introduction
7
What is Computer Organization?

Organization is how features are implemented.
How does a Computer Work?

For Example: Is there a special hardware multiply unit for
multiplication operation or is it done by repeated addition?
8
Structure & Function



Structure is the way in which components relate to each
other
Function is the operation of individual components as part
of the structure.
Main functions performed by a computer system are:
 Data processing
 Data storage
 Data movement
 Control
9
Contd..

When data is received from or delivered by a device that
is directly connected to the computer, process is called
Input-Output (I/O).

When data are moved over longer distance, to or from a
remote device, the process is known as Data
Communication.
10
Structure - Top Level
Peripherals
Computer
Central
Processing
Unit
Computer
Main
Memory
Systems
Interconnection
Input
Output
Communication
lines
11
Structure - The CPU
CPU
Computer
Arithmetic
and
Login Unit
Registers
I/O
System
Bus
Memory
CPU
Internal CPU
Interconnection
Control
Unit
12
Structure - The Control Unit
Control Unit
CPU
Sequencing
Logic
ALU
Internal
Bus
Registers
Control
Unit
Control Unit
Registers and
Decoders
Control
Memory
13
Microprocessors
14
Microprocessor


Microprocessor is an electronic circuit that functions as the
central processing unit (CPU) of a computer, providing
computational control.
Microprocessors are also used in other advanced electronic
systems, such as computer printers, automobiles, and jet airliners.
15
Processor Integration
Early computers had many separate chips for the different portions
of a computer system
Registers
Control
16
ALU
Memory
Microprocessors
Data Bus
Address Bus
CPU
(ALU +
Reg +
control)
Memory
I/O
Devices
Control Bus
First microprocessors placed control, registers, arithmetic logic
unit in one integrated circuit (one chip).
17
Modern Processors
Modern microprocessors (general purpose Processors) also integrate memory
onchip for faster access. External memory and I/O components still required.
Memory integrated on the microprocessor is called cache memory.
Data Bus
CPU
Registers,
ALU,
Fetch,
Exe Logic,
Bus logic,
Cache Memory
Address Bus
Memory
Control Bus
18
I/O
Devices
Microcontrollers
Microcontrollers integrate all of the components (control,
memory, I/O) of a computer system into one integrated circuit.
Microcontrollers are intended to be single chip solutions for
systems requiring low to moderate processing power.
Microcontroller
19
Microprocessor vs. Microcontroller
Microprocessor
 CPU is stand-alone, RAM,
ROM, I/O, timer are separate
 designer can decide on the
amount of ROM, RAM and I/O
ports.
 general-purpose
20
Microcontroller
 CPU, RAM, ROM, I/O and timer
are all on a single chip
 fix amount of on-chip ROM, RAM,
I/O ports
 single-purpose
History of Intel Microprocessors

1971 - 4004




Followed in 1972 by 8008



First microprocessor
All CPU components on a single chip
4 bit
8 bit
Both designed for specific applications
1974 - 8080

21
Intel’s first general purpose microprocessor
Pentium Evolution (1)

8080




8086





much more powerful
16 bit
instruction cache, prefetch few instructions
8088 (8 bit external bus) used in first IBM PC
80286



first general purpose microprocessor
8 bit data path
Used in first personal computer – Altair
16 Mbyte memory addressable
up from 1Mb
80386


22
32 bit
Support for multitasking
Pentium Evolution (2)

80486



Pentium



sophisticated powerful cache and instruction pipelining
built in maths co-processor
Superscalar
Multiple instructions executed in parallel
Pentium Pro





23
Increased superscalar organization
Aggressive register renaming
branch prediction
data flow analysis
speculative execution
Pentium Evolution (3)

Pentium II



Pentium III


Additional floating point instructions for 3D graphics
Pentium 4



MMX technology
graphics, video & audio processing
Note Arabic rather than Roman numerals
Further floating point and multimedia enhancements
Itanium

24
64 bit
Assembly Language
25
Programming Languages



High-Level Languages (HLL)
Assembly Language
Machine Language
26
High-Level Language




Allow programmers to write programs that look more like
natural language.
Examples: C++, Java, C#.NET etc
A program called Compiler is needed to translate a high-level
language program into machine code.
Each statement usually translates into multiple machine
language instructions.
27
Machine Language




The "native" language of the computer
Numeric instructions and operands that can be stored in
memory and are directly executed by computer system.
Each ML instruction contains an op code (operation
code) and zero or more operands.
Examples:
Opcode
Operand
Meaning
------------------------------------------------40
increment the AX register
05
0005
add 0005 to AX
28
Assembly Language



Use instruction mnemonics that have one-to-one
correspondence with machine language.
An instruction is a symbolic representation of a single
machine instruction
Consists of:
 label
always optional
 mnemonic
always required
 operand(s)
required by some instructions
 comment
always optional
29
Sample Program Written in Debug
1. mov ax, 5
2. add ax, 10
ax
ax
05
Me m or y
011C
011E
15
35
3. add ax, 20
4. mov [0120], ax
5. int 20
30
ax
ax
35
0120
0122
35
0124
0126
Figure 1. Machine Language Generation by ASM
and HLL programs.
ASM
ML
ML
H LL
ML
ML
ML
31
Why Learn Assembly Language?





Learn how a processor works
Explore the internal representation of data and instructions
Allows creation of small and efficient programs
Provides a convenient way to directly access the computers
hardware
Programmers write subroutine also known as Interface
Subroutine / device drivers in assembly language and call them
from high-level language programs.
32
Essential Tools

Assembler is a program that converts source-code programs
into a machine language (object file).

Linker joins together two or more object files and produces a
single executable file.

Debugger loads an executable program, displays the source
code, and lets the programmer step through the program one
instruction at a time, and display and modify memory.

Emulator allows you to load and run assembly language
programs, examine and change contents of registers. Example:
EMU8086
33
References

Chapter 1 & 3, Ytha Yu and Charles Marut, “Assembly Language Programming and
Organization of IBM PC”,

Chapter 3,William Stallings,“Computer Organization & Architecture”

Chapter 1, Kip Irvine, “Assembly Language for Intel-Based Computers”, Third
Edition,, Prentice Hall Incorporated
34