Computer Organization & Assembly Language: 1 - An Introduction
Computer Organization & Assembly Language: 1 - An Introduction
Assembly Language
1 – An Introduction
Ahmad Naeem
Outline
About this Course
Basic Structure of Computer
What is Computer Organization?
About Assembly Language
2
What is this course about?
Course Objectives
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
To understand how low level logic is employed for problem solving
by using assembly language as a tool.
4
Course Contents
Basic Structure & Components of a Computer System
Difference in Computer Organization & Computer
Architecture
Computer Evolution
Microprocessor & Microcontrollers
Interconnection Structures
Memory Organization
Data Representation
Instruction Set
Processor Structure & Function
Interrupts
Processor Registers & FLAGS
5
Course Contents Contd..
Assembly Language
Syntax
Basic Instructions
Flow Control Instructions
High Level Language Structures
Logic, Shift and Rotate Instructions
The Stack
Multiplication & Division Instructions
Array & Addressing Modes
String Instructions
Procedures & Macros
Translation of high level language into assembly language.
6
Basic Structure & Function –
Computer System
Structure
8
Difference in Peripherals & Communication
Lines
9
Structure - Top Level
Peripherals Computer
Central Main
Processing Memory
Unit
Computer
Systems
Interconnection
Input
Output
Communication
lines
10
Structure – Top Level Contd..
11
Structure - The CPU
CPU
Computer Arithmetic
Registers and
I/O Login Unit
System CPU
Bus
Internal CPU
Memory Interconnection
Control
Unit
12
Structure – The CPU
Control Unit: controls the operation of CPU and hence the
computer.
Arithmetic and logic unit: performs the computer’s data
processing functions.
Registers: provides storage internal to CPU.
CPU interconnection: Mechanism that provides for
communication among the control unit,ALU, and registers.
13
Structure - The Control Unit
Control Unit
CPU
Sequencing
ALU Logic
Control
Internal
Unit
Bus
Control Unit
Registers Registers and
Decoders
Control
Memory
14
Function
Function is the operation of individual components as part
of the structure.
Main functions performed by a computer system are:
Process Data
Store Data
Move Data
Control the above three functions
15
Functional View of Computer
16
Possible Operations
Data movement device Data storage device (read/write)
17
Possible Operations Contd..
Processing on data stored in storage or in external environment
18
What is Computer Organization?
Computer Architecture
Computer Architecture refers to those attributes of a system
visible to a programmer
Those attributes that have direct impact on logical execution of a
program.
Architectural attributes include:
the instruction set,
no. of bits used to represent various data types (numbers, characters
etc),
I/O mechanisms and technology for addressing memory.
20
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?
Computer Organization refers to the operational units and their
interconnections that realize the architectural specifications.
Organizational attributes:
hardware details transparent to the programmer such as control
signals,
interfaces between peripherals and the computer,
the memory technology used.
21
Computer Organization vs. Architecture
Architecture:
Logical aspects of computer hardware that are visible to the
programmer
What instruction a computer understands!
Organization:
Physical aspects of computer hardware that are invisible to the
programmer
How does the computer hardware carries out instructions!
22
Computer Organization vs. Architecture
Contd..
Computer Organization must be designed to implement a
particular architectural specifications.
23
Computer Organization vs. Architecture
Contd..
Architectural Issues:
Reduced Instruction Set Computing (RISC)
Complex Instruction Set Computing (CISC)
Pipeline etc
Organizational Issues:
I/O, control unit, memory etc
24
Why Study Computer Organization?
Understand how computer works!
Computer functional components, their characteristics, their
performance, and their interactions.
How to select a system?
Understand tradeoff among various components, such as memory
size, CPU clock speed etc.
25
Assembly Language
Computer Level Hierarchy
Figure Reference:
27 http://users.dickinson.edu/~braught/courses/cs251f09/topics/slides/intro.pdf
Programming Languages
28
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.
29
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:
30
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
31
Sample Program
5. int 20
32
Figure: Machine Language Generation by ASM
and HLL programs.
ASM ML
ML
ML
HLL
ML
ML
33
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
34
Why Learn Assembly Language?
Learn how a processor works
Explore the internal representation of data and instructions
How to structure a program so it runs more efficiently.
35