File - onlyprogrammerz

Download Report

Transcript File - onlyprogrammerz

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

7

Introduction

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 Computer Central Processing Unit Main Memory Systems Interconnection Input Output Communication lines 11

Structure - The CPU

Computer I/O System Bus CPU Memory CPU Registers Arithmetic and Login Unit Internal CPU Interconnection Control Unit 12

Structure - The Control Unit

CPU ALU Internal Bus Control Unit Registers Control Unit Sequencing Logic Control Unit Registers and Decoders Control Memory 13

14

Microprocessors

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 ALU Memory 16 Control

Microprocessors

Data Bus Address Bus CPU (ALU + Reg + control) Memory I/O Devices Control Bus First

micro

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

17

Modern

Processors

Modern

micro

processors (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 I/O Devices Control Bus 18

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

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 20

History of Intel Microprocessors

      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 21

   

Pentium Evolution (1)

 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 22

Pentium Evolution (2)

     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 23

Pentium Evolution (3)

      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 24

25

Assembly Language

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 code) and zero or more operands.

op code

(operation 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  mnemonic   operand(s) comment always optional always required required by some instructions always optional 29

Sample Program Written in Debug

30

1.

mov ax, 5

2.

add ax, 10

3.

add ax, 20

4.

mov [0120], ax

5.

int 20 ax 05 ax 15 ax 35 ax 35

Memory

35 011C 011E 0120 0122 0124 0126

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

ASM HLL ML ML 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 fil

e).

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