1 - 132501-Introduction to Microprocessor and Computer

80
Microprocessors 66322 Dr. Aladdin Masri

Transcript of 1 - 132501-Introduction to Microprocessor and Computer

  • Microprocessors66322

    Dr. Aladdin Masri

  • Course Outline

    Introduction to Microprocessor and Computer The Microprocessor and its Architecture Addressing modes Data Movement Instructions Arithmetic and Logic Instructions Program Control Instructions Using Assembly Language With C/C++

    Microprocessors (66322) Dr. Aladdin Masri2

  • Text Book and Grades

    The Intel Microprocessors, Barry B. Brey Assembly Language for Intel-Based

    Computers, Kip R. Irvine First Exam 20% Second Exam 20% Quizzes and HW 10% Final Exam 50%

    Microprocessors (66322) Dr. Aladdin Masri3

  • Microprocessors (66322) Dr. Aladdin Masri4

    Introduction to Microprocessor and Computer

  • 11 What is a computer? A programmable electronic device that can

    store, retrieve, and process data. A machine that manipulates data according to

    a list of instructions. Classification of Computers

    Personal computers Mainframes Supercomputers Dedicated controllers Embedded controllers

    Microprocessors (66322) Dr. Aladdin Masri5

  • What is a computer?

    Central Processing Unit (CPU) Memory Input / Output (I/O) circuitry Buses:

    Address bus Data bus Control bus

    Microprocessors (66322) Dr. Aladdin Masri6

  • What is a microprocessor? Also known as central processing unit CPU An integrated circuit built on a tiny piece of silicon Contains thousands, or even millions, of transistors,

    which are interconnected via superfine traces of aluminum

    The transistors work together to store and manipulate data so that the microprocessor can perform a wide variety of useful functions

    The particular functions a microprocessor performs are dictated by software fetch, decode, and then executes binary instructions in a

    sequence stored in memory

    Microprocessors (66322) Dr. Aladdin Masri7

  • What is a microprocessor? One most common task microprocessors perform is to serve as

    brains inside personal computers (PC), but they deliver "intelligence" to other devices as well.

    Contains: ALU: performs computing tasks manipulates the data/ performs

    numerical and logical computations Registers: are used for temporary storage Control unit: is used for timing and other controlling functions

    contains a program counter (next instructions address and status register)

    Characteristics: General purpose CPU Binary Register-based Clock-driven Programmable

    Arithmetic

    Logic

    Unit

    Register

    Arrays

    Control Unit

    Microprocessors (66322) Dr. Aladdin Masri8

  • Computer Pre-history Electric Motors were used in mechanical

    calculators in 1800s by Bomar, Monroe, etc. (for up to 4 functions)

    1889: Herman Holerith designed a real computing calculator He founded Tabulated Machine Company, now known

    as IBM. 1941: Konrad Zuse created Z3 (German) 1943: Alan Turing created Colossus (for code

    breaking)Microprocessors (66322) Dr. Aladdin Masri9

  • Electronic Numerical Integrator and Calculator ENIAC A huge machine, in1946

    over 17,000 vacuum tubes; 500 miles of wires weighed over 30 tons about 100,000 operations per second

    Programmed by rewiring its circuits process took many workers several days workers changed electrical connections on plug-boards

    like early telephone switchboards Required frequent maintenance

    vacuum tube service life is a problem

    Microprocessors (66322) Dr. Aladdin Masri10

  • Programming Advancements The first, machine language, was constructed of ones

    and zeros using binary codes. Stored in the computer memory system as groups of

    instructions called a program Difficult to decipher and write Prone to cause many errors in writing

    Once systems such as UNIVAC became available in early 1950s, assembly language was used to simplify entering binary code. Assembly language an aid to programming. Assembler allows programmer to use mnemonic codes

    (such as ADD for addition) in place of a binary number (such as 0100 0111)

    Microprocessors (66322) Dr. Aladdin Masri11

  • Programming Advancements

    High-Level Languages (such as C and C++) Written in statements of spoken languages (such as

    English) machine independent easy to write and troubleshoot requires large memory and less efficient in

    execution

    Microprocessors (66322) Dr. Aladdin Masri12

  • The Intel 4004 Microprocessor Worlds first microprocessor A 4-bit microprocessor-

    programmable controller on a chip. 2,250 transistors 12 mm2 Clock: 108 kHz

    Addressed 4096, 4-bit-wide memory locations. 4-bit-wide memory location often

    called a nibble The 4004 instruction set contained

    45 instructions.

    Microprocessors (66322) Dr. Aladdin Masri13

  • The 4040 Microprocessor Evolution of 4-bit microprocessor ended when

    Intel released the 4040, an updated 4004. operated at a higher speed

    Texas Instruments and others also produced 4-bit microprocessors. still survives in low-end applications such as

    microwave ovens and small control systems Calculators still based on 4-bit BCD (binary-coded

    decimal) codes Main problems with early microprocessor were

    speed, word width, and memory size. Microprocessors (66322) Dr. Aladdin Masri14

  • The 8008 Microprocessor 1971The 8080 Microprocessor 1973 The 8008 microprocessor is an extended 8-bit version of

    4004 microprocessor Addressed expanded memory of 16K bytes. Contained additional instructions, 48 total. Provided opportunity for application in more advanced systems

    The 8080 microprocessor was the first of the modern 8-bit microprocessors 8080 addressed four times more memory.

    64K bytes vs. l6K bytes for 8008 Executed additional instructions; 10x faster. TTL (transistor-transistor logic) compatible.

    the 8008 was not directly compatible Interfacing made easier and less expensive.

    Microprocessors (66322) Dr. Aladdin Masri15

  • Early 8-bit Microprocessors

    Microprocessors (66322) Dr. Aladdin Masri16

  • The 8085 Microprocessor 1977

    An updated version of the 8080 Last 8-bit, general-purpose microprocessor

    developed by Intel. Slightly more advanced than 8080

    246 instructions executed software at an even higher speed. 769,230 instructions per second vs. 500,000 per

    second on the 8080.

    Microprocessors (66322) Dr. Aladdin Masri17

  • The 8086/8088 Microprocessors 1978 Both devices are 16-bit

    microprocessors. Executed instructions in 400 ns

    (2.5millions of instructions per second)

    Addressed 1M byte of memory. Led to many sophisticated applications

    Improvements to the instruction set included multiply and divideinstructions. missing on earlier microprocessors

    Number of instructions increased. over 20,000 variations

    Microprocessors (66322) Dr. Aladdin Masri18

  • The 80286 Microprocessor 1983 Even the 1M-byte memory system proved

    limiting for databases and other applications. an updated 8086

    Almost identical to the 8086/8088. addressed 16M-byte memory system instead of a 1M-

    byte system Instruction set almost identical except for a few

    additional instructions. managed the extra 15M bytes of memory

    Executed some instructions in as little as 250 ns (4.0 MIPs)

    Microprocessors (66322) Dr. Aladdin Masri19

  • The 80386 Microprocessor 1986 Intels first practical microprocessor to contain a 32-bit data

    bus and 32-bit memory address. addressed up to 4G bytes of memory.

    80386SX addressed 16M bytes of memory through a 16-bit data and 24-bit address bus.

    80386SL/80386SLC addressed 32M bytes memory via 16-bit data, 25-bit address bus.

    80386SLC contained an internal cache to process data at even higher rates.

    80386EX: embedded PC, 24 lines for input/output data, 26-bit address bus, DRAM refresh controller.

    Microprocessors (66322) Dr. Aladdin Masri20

  • The 80486 Microprocessor 1989 Highly integrated package.

    80386-like microprocessor. 80387-like numeric coprocessor. 8K-byte cache memory system.

    Internal structure of 80486 modified so about half of its instructions executed in one clock instead of two clocks. in a 50 MHz version, about half of

    instructions executed in 25ns (50 MIPs) 50% over 80386 operated at same clock

    speed

    Microprocessors (66322) Dr. Aladdin Masri21

  • The Pentium Microprocessor 1993 Similar to 80386 and 80486

    microprocessors Originally labeled the P5 or 80586

    Intel decided not to use a number because it appeared to be impossible to copyright a number

    Introductory versions operated with a clocking frequency of 60 MHz and 66 MHz, and a speed of 110 MIPs

    Cache size was increased to 16K bytes from the 8K cache found in 80486

    Memory system up to 4G bytes Data bus width increased to a full 64

    bitsMicroprocessors (66322) Dr. Aladdin Masri22

  • Pentium Pro Processor Formerly named the P6. 21 million transistors, integer units, floating-point unit,

    clock frequency 150 and 166 MHz Internal 16K level-one (L1) cache.

    8K data, 8K for instructions Pentium Pro contains 256K level-two (L2) cache

    Pentium Pro uses three execution engines, to execute up to three instructions at a time. can conflict and still execute in parallel

    Pentium Pro can address 4G-byte or a 64G-byte memory system. 36-bit address bus if configured for a 64G memory system

    Microprocessors (66322) Dr. Aladdin Masri23

  • Pentium II Microprocessor 1997Pentium Xeon Microprocessor 1998 Pentium II represents new direction for Intel.

    Intel has placed Pentium II on a small circuit board, instead of being an integrated circuit.

    Microprocessor on the Pentium II module actually Pentium Pro with MMX extensions.

    Intel designed Xeon specifically for high-end workstation and server applications Xeon available with 32K L1 cache and L2 cache size of:

    512K, 1M, or 2M bytes. Xeon functions with the 440GX chip set. Also designed to function with four Xeons in the same

    system, similar to Pentium Pro.

    Microprocessors (66322) Dr. Aladdin Masri24

  • Pentium III Microprocessor Faster core than Pentium II

    still a P6 or Pentium Pro processor.

    Available in slot 1 version mounted on a plastic cartridge.

    Also in socket 370 version called a flip-chip which looks like older Pentium package.

    Pentium III available with clock frequencies up to 1 GHz.

    Slot 1 version contains a 512K cache; flip-chip version contains 256K cache.

    Microprocessors (66322) Dr. Aladdin Masri25

  • Pentium 4 and Core2 Microprocessors Pentium 4 first made available in late 2000.

    most recent version of Pentium called Core2 uses Intel P6 architecture

    Pentium 4 available to 3.2 GHz and faster. supporting chip sets use RAMBUS or DDR

    memory in place of SDRAM technology Core2 is available at speeds of up to 3 GHz.

    improvement in internal integration, at presentthe 0.045 micron or 45 nm technology

    A likely change is a shift from aluminum to copper interconnections inside the microprocessor.

    Another event to look for is a change in the speed of the front side bus. increase beyond current maximum 1033 MHz

    Microprocessors (66322) Dr. Aladdin Masri26

  • Pentium 4 and Core2, 64-bit and Multiple Core Microprocessors Recent modifications to Pentium 4 and Core2

    include a 64-bit core and multiple cores. 64-bit modification allows address of over 4G

    bytes of memory through a 64-bit address. 40 address pins in these newer versions allow up to 1T

    (terabytes) of memory to be accessed Also allows 64-bit integer arithmetic.

    Less important than ability to address more memory Intel manufactures dual and quad core versions

    Number of cores will likely increase to eight or even sixteen.

    Microprocessors (66322) Dr. Aladdin Masri27

  • Itanium Microprocessor 2002 A new architecture of 64 bits in width

    with a 128-bit data bus. Joint venture called EPIC (Explicitly

    Parallel Instruction Computing) of Intel and Hewlett-Packard.

    The Itanium architecture allows greater parallelism than traditional architectures 128 general-purpose integer 128 floating-point registers 64 predicate registers.

    Many execution units to ensure enough hardware resources for software.

    Microprocessors (66322) Dr. Aladdin Masri28

  • No. of TransistorsModel Year of Introduction No. of Transistors4004 1971 2,2508008 1972 2,5008080 1974 5,0008086 1978 29,00080286 1982 120,00080386 processor 1985 275,00080486 DX processor 1989 1,180,000Pentium processor 1993 3,100,000Pentium II processor 1997 7,500,000Pentium III processor 1999 24,000,000Pentium 4 processor 2000 42,000,000Pentium D 900 2006 376,000,000

    Microprocessors (66322) Dr. Aladdin Masri29

  • Microprocessor bus and memory sizes

    Microprocessors (66322) Dr. Aladdin Masri30

  • Conceptual views

    Microprocessors (66322) Dr. Aladdin Masri31

  • Conceptual views

    Microprocessors (66322) Dr. Aladdin Masri32

  • 1-2 Microprocessor-based computer system

    Microprocessors (66322) Dr. Aladdin Masri33

  • The Memory System Internal storage areas in the computer

    A group of registers each storing one byte (8 bits) in general

    A read operation to a particular location always returns the last value stored in that location

    Serves two major purposes:1. Storing the binary codes for the sequence of

    instructions specified by programs 2. Storing binary data that the computer needs to

    execute instructions (data)Microprocessors (66322) Dr. Aladdin Masri34

  • Memory Types

    RAM: Random Access memory Volatile: losses information as power is removed Read/Write Memory (R/W)

    Write means the processor can store information Read means the processor can receive information from the

    memory Acts like a Blackboard!

    ROM: Read-Only memory; It is typically non-volatile (permanent) can be

    erasable It is similar to a Page from your textbook

    Microprocessors (66322) Dr. Aladdin Masri35

  • Memory Classification

    Microprocessors (66322) Dr. Aladdin Masri36

  • The memory map of a personal computer Main memory system divided into three parts:

    TPA (transient program area) System Area XMS (extended memory system)

    Type of microprocessor present determines whether an extended memory system exists. Computers based on 8086 and 8088 have no extended

    memory First 1M byte of memory often called the real or

    conventional memory system. Intel microprocessors designed to function in this area

    using real mode operation

    Microprocessors (66322) Dr. Aladdin Masri37

  • The memory map of a personal computer

    Microprocessors (66322) Dr. Aladdin Masri38

  • The memory map of a personal computer 80286 through the Core2 contain the TPA (640K

    bytes) and system area (384K bytes). also contain extended memory often called AT class machines

    Extended memory up to: 15M bytes in the 80286 and 80386SX 4095M bytes in 80386DX, 80486 and Pentium

    microprocessors. Up to 1M less than 4G or 1 M less than 64G in

    Pentium Pro through Core2 computer systems Servers tend to use the larger memory map.

    Microprocessors (66322) Dr. Aladdin Masri39

  • The Memory SystemOther versions memory The PS/1 and PS/2 by IBM are other versions of

    the same basic memory design. Also referred to as ISA (industry standard architecture)

    or EISA (extended ISA). The PS/2 referred to as a micro-channel architecture or

    ISA system depending on the model number

    Pentium and ATX class machines feature addition of the PCI (peripheral component interconnect) bus. used in all Pentium through Core2 systems either a 32 or 64-bit bus

    Microprocessors (66322) Dr. Aladdin Masri40

  • The Memory SystemOther versions memory The ISA machine

    Contains an 8-bit peripheral bus used to interface 8-bit devices, in the 8088/8088-based PC or XT computers

    Uses a 16-bit peripheral bus for interface, in the AT class machine and 80286+

    The EISA bus is a 32-bit peripheral interface bus The VESA local bus or VL bus

    In many 80486 systems Interfaces disk and video to the microprocessor Allows 32-bit interfaces to function at the same clocking

    speed recent modification supporting 64-bit data bus has

    generated little interest Microprocessors (66322) Dr. Aladdin Masri41

  • The Memory SystemOther versions memory USB: universal serial bus

    Connecting peripheral devices to the microprocessor through a serial data path and a twisted pair of wires

    Data transfer rates are 10 Mbps for USB1. Increase to 480 Mbps in USB2.

    AGP: advanced graphics port (for video cards) Serial ATA interface (SATA) for hard disk drives

    The SATA bus transfers data from PC to hard disk at rates of 150M bytes per second; 300M bytes for SATA-2.

    PCI Express bus for the video card.

    Microprocessors (66322) Dr. Aladdin Masri42

  • The TPA Area

    Length of the TPA is 640K bytes, holding: DOS (disk operating system) operating system Other programs that control the computer system It also stores any currently active or inactive DOS

    application programs The TPA is a DOS concept and not really

    applicable in Windows

    Microprocessors (66322) Dr. Aladdin Masri43

  • The memory map of the TPA DOS memory map shows how areas of

    TPA are used for system programs, data and drivers. also shows a large area of memory

    available for application programs Hexadecimal number to left of each

    area represents the memory addresses that begin and end each data area Hexadecimal memory addresses number

    each byte of the memory system. Often a hexadecimal number ends with

    an H to indicate it is a hexadecimal value. 1234H is 1234 hexadecimal

    also represent hexadecimal data as 0x1234 for a 1234 hexadecimal

    Microprocessors (66322) Dr. Aladdin Masri44

  • The memory map of the TPA Though not used by Windows, still used to

    execute DOS applications, even with Win XP. Windows uses a file called SYSTEM.INI to

    load drivers used by Windows. Newer versions of Windows have a registry

    added to contain information about the system and the drivers used. You can view the registry with the REGEDIT

    program.

    Microprocessors (66322) Dr. Aladdin Masri45

  • The System Area

    The system area contains programs on read-only (ROM) or flash memory, and areas of read/write (RAM) memory for data storage. Smaller than the TPA Just as important Includes various areas

    Microprocessors (66322) Dr. Aladdin Masri46

  • Windows Systems Modern computers use a

    different memory map with Windows than DOS memory maps. The difference between it and

    the DOS memory map are sizes and locations of these areas.

    TPA is first 2G bytes Every Windows program can

    use up to 2G bytes of memory. System area is last 2G bytes.Microprocessors (66322) Dr. Aladdin Masri47

  • I/O Space I/O devices allow the

    microprocessor to communicate with the outside world.

    I/O (input/output) space in a computer system extends from I/O port 0000H to port FFFFH. I/O port address is similar to a

    memory address instead of memory, it addresses an

    I/O device Access to most I/O devices should

    always be made through Windows, DOS, or BIOS function calls.

    The map shown is provided as a guide to illustrate the I/O space in the system.

    Microprocessors (66322) Dr. Aladdin Masri48

  • The Microprocessor Functions Microprocessor performs three main tasks:1. Data transfer between itself and the memory or I/O

    systems2. Simple arithmetic and logic operations3. Program flow via simple decisions Memory and I/O controlled via instructions stored in

    memory, executed by the microprocessor. Controls memory and I/O through connections called

    buses. Buses select an I/O or memory device, transfer data

    between I/O devices or memory and the microprocessor, control I/O and memory systems

    Microprocessors (66322) Dr. Aladdin Masri49

  • Buses A collection of wires through which data is transmitted from

    one part of a computer to another Three buses exist: address, data, and control

    Transfer address, data, and control information between microprocessor, memory and I/O.

    The microprocessor reads a memory location by sending the memory an address through the address bus.

    Next, it sends a memory read control signal to cause the memory to read data.

    Data read from memory are passed to the microprocessor through the data bus.

    Whenever a memory write, I/O write, or I/O read occurs, the same sequence ensues.

    Microprocessors (66322) Dr. Aladdin Masri50

  • The address, data, and control bus structure

    Microprocessors (66322) Dr. Aladdin Masri51

  • The Address Bus Unidirectional, consists of 16, 20, 24, or 32

    parallel signal lines 64-bit extensions to Pentium provide 40 address pins,

    allowing up to 1T byte of memory to be accessed. The CPU requests a memory location from the

    memory or an I/O location from the I/O devices. If I/O is addressed, the address bus contains a 16-bit

    I/O address from 0000H through FFFFH. If memory is addressed, the bus contains a memory

    address, varying in width by type of microprocessor. Microprocessors (66322) Dr. Aladdin Masri52

  • The Data Bus The data bus transfers information between the

    microprocessor and its memory and I/O address space. bi-directional only one device at a time can have its outputs enabled

    Data transfers vary in size, from 8 bits wide to 64 bits wide in various Intel microprocessors. 8088 has an 8-bit data bus that transfers 8 bits of data at a time 8086, 80286, 80386SL, 80386SX, and 80386EX transfer 16 bits

    of data 80386DX, 80486SX, and 80486DX, 32 bits Pentium through Core2 microprocessors transfer 64 bits of data

    Advantage of a wider data bus is speed in applications using wide data.

    Microprocessors (66322) Dr. Aladdin Masri53

  • The physical memory systems

    Microprocessors (66322) Dr. Aladdin Masri54

  • The physical memory systems

    Microprocessors (66322) Dr. Aladdin Masri55

  • The Control Bus Control bus lines select and cause memory or I/O

    to perform a read or write operation. consists of 4 to 10 (or more) parallel signal lines

    In most computer systems, there are four control bus connections: : memory read control : memory write control : I/O read control : I/O write control

    Over-bar indicates the control signal is active-lowactive when logic zero appears on control line

    Microprocessors (66322) Dr. Aladdin Masri56

  • Microprocessor: Fetch Decode Execute Read first word of the present instruction

    from the data bus (using a read bus cycle).

    Inspect the operation code in the first word of the instruction, decide which kind of instruction is being performed.

    Update the PC, place PC contents on the address bus, and read additional data words (if necessary) using read bus cycles.

    Update all CPU registers (including the PC) according to the present register contents and the present instruction type.

    If necessary, update words in memory and I/O devices using write bus cycles.

    Microprocessors (66322) Dr. Aladdin Masri57

  • 1-3 Number Systems In any numbering system, the number of symbols

    used is called the base or radix of the number system. A decimal (base 10) number is constructed with 10

    digits: 0 through 9. An octal (base 8) number; 8 digits: 0 through 7. A binary (base 2) number; 2 digits: 0 and 1.

    If the base exceeds 10, additional digits use letters of the alphabet, beginning with an A. A hexadecimal (base 16) is constructed with 10 digits:

    0 through 9, followed by A, B, C, D, E and F.Microprocessors (66322) Dr. Aladdin Masri58

  • 1-3 Number Systems

    Microprocessors (66322) Dr. Aladdin Masri59

  • Positional Notation Position to the left of the radix (number base)

    point is always the units position in system. called a decimal point only in the decimal system position to left of the binary point always 20, or 1 position left of the octal point is 80, or 1

    Any number raised to its zero power is always one (1), or the units position.

    In any system, positions right of the decimal point have negative powers. First digit to the right of the decimal point has a value

    of 101, or 0.1.

    Microprocessors (66322) Dr. Aladdin Masri60

  • Binary Number System

    Binary numbers use base 2 or radix 2, have just two digits 0 and 1

    Bit numbering:

    Rightmost bit: Least Significant Bit (LSB) Leftmost bit: Most Significant Bit (MSB) Example:

    11012 = 23*1 +22*1 + 21*0 + 20*1

    Microprocessors (66322) Dr. Aladdin Masri61

    0151 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0

    MSB LSB

  • Binary Number System

    Evaluate the decimal equivalent of binary number 1011.012

    Solution:1011.012 = 23*1+22*0+21*1+20*1+2-1*0+2-2*1

    = 8 + 0 + 2 + 1 + 0 + 0.25= 11.2510

    Microprocessors (66322) Dr. Aladdin Masri62

  • Binary Number System Convert the decimal number 30.812510 to binary Solution:

    So, 30.812510 = 11110.11012Microprocessors (66322) Dr. Aladdin Masri63

    30 2

    15 0

    7 1

    3 1

    1 1

    0 1

    2*0.8125 = 1.625 1

    2*0.625 = 1.25 1

    2*0.25 = 0.5 0

    2*0.5 = 1.0 1

    LSB

    MSB

    MSB

  • Hexadecimal Number System Hex is very useful when it comes to memory mapping.

    Todays memories are so large, it is much easier to describe data locations in hex.

    A shorthand notation for binary, because each hex number represents 4 bits.

    A binary number is converted to a hex number by taking 4 bits at a time. Example: 101011010111

    Binary: 1010 1101 0111Hex: A D 7So, (101011010111)2=(AD7)16

    The letters correspond to 2 digit numbers: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15

    Microprocessors (66322) Dr. Aladdin Masri64

  • 14 Data Format: Byte-Sized Data Stored as unsigned and signed integers.

    1 byte = 8 bits Difference in these forms is the weight of the

    leftmost bit position. unsigned integer: from 0 255 singed integer: from -128 127

    In signed integer format, the leftmost bit represents the sign bit of the number. also a weight of -128

    A special directive to define data byte(s): DB Define both ASCII code and BCD (binary-coded data)

    Microprocessors (66322) Dr. Aladdin Masri65

  • Byte-Sized Data Examples ASCII data

    Unpacked BCD data

    Packed BCD data

    Microprocessors (66322) Dr. Aladdin Masri66

    0000 4D 69 63 72 6F 70 726F 63 65 73 73 6F 7220 43 6F 75 72 73 65

    Class DB Microprocessor Course

    0015 41 6C 61 64 64 69 6E 20 4D 61 73 72 69

    Name DB Aladdin Masri

    0000 02 03 06 Unp1 DB 2,3,6 ;defines the number 6320003 09 07 Unp2 DB 9,7 ;defines the number 79

    0000 39 55 Pack1 DB 39H, 55H ;defines the number 55390002 08 20 Pack2 DB 8,20H ;defines the number 2008

  • Complement Representation Positive numbers

    Signed value = Unsigned value Negative numbers

    1's complement 2's complement

    Negative weight for MSB Another way to obtain the

    signed value is to assign a negative weight to most-significant bit

    = -128 + 32 + 16 + 4 = -76

    8-bit Binaryvalue

    Unsignedvalue

    Signedvalue

    00000000 0 000000001 1 +100000010 2 +2

    . . . . . . . . .

    01111110 126 +126

    01111111 127 +127

    10000000 128 -128

    10000001 129 -127

    . . . . . . . . .

    11111110 254 -2

    11111111 255 -1

    1 0 1 1 0 1 0 0

    -128 64 32 16 8 4 2 1

    Microprocessors (66322) Dr. Aladdin Masri67

  • Byte-Sized Data Examples

    Unsigned data

    Signed data 2s complement

    Microprocessors (66322) Dr. Aladdin Masri68

  • Word-Sized Data

    A data word is formed with two bytes (16 bits)

    A special directive to define data byte(s): DW

    Microprocessors (66322) Dr. Aladdin Masri69

  • The storage format for a 16-bit word The figure shows how data,

    1234H, is stored in the memory. The least significant byte

    always stored in the lowest-numbered memory location (3000H).

    Most significant byte is stored in the highest (3001H).

    This method of storing a number is called the little endian format.

    Microprocessors (66322) Dr. Aladdin Masri70

  • Doubleword-Sized Data Requires four bytes of memory because it is a

    32-bit number. appears as a product after a multiplication also as a dividend before a division

    Defined using the assembler directive define doubleword, DWORD or DD.

    Microprocessors (66322) Dr. Aladdin Masri71

  • The storage format for a 32-bit word The figure shows how double

    word data 12345678H is stored in the memory locations from 00100H 00103H

    Examples of double word data

    Microprocessors (66322) Dr. Aladdin Masri72

  • Real Numbers Since many high-level languages use Intel microprocessors,

    real numbers are often encountered. A real, or a floating-point number contains two parts:

    an exponent a mantissa, significand, or fraction

    A 4-byte number is called single-precision.

    The 8-byte form is called double-precision.

    Microprocessors (66322) Dr. Aladdin Masri73

  • Real Numbers The assembler can be used to define real numbers

    in single- and double-precision forms: the DD directive for single-precision 32-bit numbers define quadword, or DQ to define 64-bit double-

    precision real numbers Optional directives are REAL4, REAL8, and

    REAL10. for defining single-, double-, and extended precision

    real numbers

    Microprocessors (66322) Dr. Aladdin Masri74

  • How real numbers are stored Get the binary format of the real number Normalize the number by adjusting it

    its value is at least 1 but less than 2 The fraction of the normalized number is the mantissa part The exponent is stored as a biased exponent:

    For single-precision, add a bias of 127, or 7FH, to the power of exponent

    For double-precision, add a bias of 1023, or 3FFH, to the power of exponent

    The sign depends on the sign of the real number Two exceptions:

    0 is stored as all zeros is stored as all ones

    Microprocessors (66322) Dr. Aladdin Masri75

  • Real Numbers

    Defining single-, double-, and extended precision real numbers example:

    Microprocessors (66322) Dr. Aladdin Masri76

  • ? Directive Memory is reserved for use in the future by using

    a question mark ? as an operand for a DB, DW, or DD directive. when ? is used in place of a numeric or ASCII value,

    the assembler sets aside a location and does not initialize it to any specific value

    It is important that word-sized data are placed at word boundaries and doubleword-sized data are placed at doubleword boundaries. if not, the microprocessor spends additional time

    accessing these data typesMicroprocessors (66322) Dr. Aladdin Masri77

  • ALIGN Aligns a variable in memory Syntax: ALIGN bound

    Where bound can be 1, 2, 4, or 16 Address of a variable should be a multiple of bound Assembler inserts empty bytes to enforce alignment

    .DATAb1 DB ? ; Address of b1 = 00404000hALIGN 2 ; Skip one bytew1 WORD ? ; Address of w1 = 00404002hw2 WORD ? ; Address of w2 = 00404004hALIGN 4 ; Skip two bytesd1 DWORD ? ; Address of d1 = 00404008hd2 DWORD ? ; Address of d2 = 0040400Ch

    Microprocessors (66322) Dr. Aladdin Masri78

    w1b1404000

    w2404004

    d1404008

    d240400C

  • Using the DUP Operator Use DUP to allocate space for an array or string

    Advantage: more compact than using a list of initializers Syntax

    counter DUP ( argument ) Counter and argument must be constants expressions

    The DUP operator may also be nested:

    Microprocessors (66322) Dr. Aladdin Masri79

  • Defining Strings A string is implemented as an array of characters

    it is usually enclosed in quotation marks, and terminated with a NULL char (byte value = 0) or end-of-line character sequence:

    carriage return 0DH line feed 0AH

    str1 DB "Enter your name", 0str2 DB 'A','E','I','O',U'greeting DB "Welcome to the Encryption

    DB "Demo Program", 0 To continue a single string across multiple lines, end each line with

    a commamenu DB "Checking Account",0dh,0ah,0dh,0ah,

    "1. Credit the account",0dh,0ah,"2. Debit the account",0dh,0ah,"3. Exit",0ah,0ah,"Choice> ",0

    Microprocessors (66322) Dr. Aladdin Masri80