introduction to assembly language

28
Computer Organization & Assembly Language

Upload: mutasadiq-iqbal

Post on 22-May-2015

371 views

Category:

Education


3 download

DESCRIPTION

Introduction to Assembly language

TRANSCRIPT

Page 1: Introduction to Assembly Language

Computer Organization & Assembly Language

Page 2: Introduction to Assembly Language

Introduction

2

Page 3: Introduction to Assembly Language

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?

3

Page 4: Introduction to Assembly Language

Structure & Function

4

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

Page 5: Introduction to Assembly Language

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.

5

Page 6: Introduction to Assembly Language

Structure - Top Level

6

Computer

Main Memory

InputOutput

SystemsInterconnection

Peripherals

Communicationlines

CentralProcessing Unit

Computer

Page 7: Introduction to Assembly Language

Structure - The CPU

7

Computer Arithmeticand Login Unit

ControlUnit

Internal CPUInterconnection

Registers

CPU

I/O

Memory

SystemBus

CPU

Page 8: Introduction to Assembly Language

Structure - The Control Unit

8

CPU

ControlMemory

Control Unit Registers and Decoders

SequencingLogic

ControlUnit

ALU

Registers

InternalBus

Control Unit

Page 9: Introduction to Assembly Language

Microprocessors

9

Page 10: Introduction to Assembly Language

Microprocessor

10

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.

Page 11: Introduction to Assembly Language

Processor Integration

11

Early computers had many separate chips for the different portions of a computer system

RegistersALU

Control Memory

Page 12: Introduction to Assembly Language

Microprocessors

12

First microprocessors placed control, registers, arithmetic logic unit in one integrated circuit (one chip).

I/ODevices

Memory

CPU(ALU +Reg +

control)

Data BusAddress Bus

Control Bus

Page 13: Introduction to Assembly Language

Modern Processors

13

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.

I/ODevices

Memory

Data BusAddress Bus

Control Bus

Registers, ALU,Fetch,Exe Logic,Bus logic,Cache Memory

CPU

Page 14: Introduction to Assembly Language

Microcontrollers

14

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

Page 15: Introduction to Assembly Language

Microprocessor vs. Microcontroller

15

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

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

Page 16: Introduction to Assembly Language

History of Intel Microprocessors

16

1971 - 4004 First microprocessor All CPU components on a single chip 4 bit

Followed in 1972 by 8008 8 bit Both designed for specific applications

1974 - 8080 Intel’s first general purpose microprocessor

Page 17: Introduction to Assembly Language

Pentium Evolution (1)

17

8080 first general purpose microprocessor 8 bit data path Used in first personal computer – Altair

8086 much more powerful 16 bit instruction cache, prefetch few instructions 8088 (8 bit external bus) used in first IBM PC

80286 16 Mbyte memory addressable up from 1Mb

80386 32 bit Support for multitasking

Page 18: Introduction to Assembly Language

Pentium Evolution (2)

18

80486 sophisticated powerful cache and instruction

pipelining built in maths co-processor

Pentium Superscalar Multiple instructions executed in parallel

Pentium Pro Increased superscalar organization Aggressive register renaming branch prediction data flow analysis speculative execution

Page 19: Introduction to Assembly Language

Pentium Evolution (3)

19

Pentium II MMX technology graphics, video & audio processing

Pentium III Additional floating point instructions for 3D

graphics Pentium 4

Note Arabic rather than Roman numerals Further floating point and multimedia

enhancements Itanium

64 bit

Page 20: Introduction to Assembly Language

Assembly Language

20

Page 21: Introduction to Assembly Language

Programming Languages

High-Level Languages (HLL) Assembly Language Machine Language

21

Page 22: Introduction to Assembly Language

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.

22

Page 23: Introduction to Assembly Language

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 register05 0005 add 0005 to AX

23

Page 24: Introduction to Assembly Language

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

24

Page 25: Introduction to Assembly Language

1.

2.

3.

4.

mov ax, 5

add ax, 10

add ax, 20

mov [0120], ax ax

ax

ax

ax 05

15

35

35

Memory

35 0120

5. int 20

011E

011C

0122

0124

0126

Sample Program Written in Debug

25

Page 26: Introduction to Assembly Language

ASM ML

ML

ML

ML

ML

HLL

Figure 1. Machine Language Generation by ASM and HLL programs.

26

Page 27: Introduction to Assembly Language

27

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.

Page 28: Introduction to Assembly Language

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

28