1 - 132501-introduction to microprocessor and computer
TRANSCRIPT
-
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