0% found this document useful (0 votes)
2 views60 pages

5 AMS Chapter2

Chapter 2 discusses the internal architecture of microprocessors, emphasizing the importance of understanding the programming model and the role of various registers. It details the features of Intel microprocessors from the 8086 to Core2, including the distinction between program-visible and program-invisible registers, as well as special-purpose registers and flags. Additionally, it covers segment registers and their functions in generating memory addresses in different operating modes.

Uploaded by

sicehol682
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views60 pages

5 AMS Chapter2

Chapter 2 discusses the internal architecture of microprocessors, emphasizing the importance of understanding the programming model and the role of various registers. It details the features of Intel microprocessors from the 8086 to Core2, including the distinction between program-visible and program-invisible registers, as well as special-purpose registers and flags. Additionally, it covers segment registers and their functions in generating memory addresses in different operating modes.

Uploaded by

sicehol682
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 60

Chapter 2: The Microprocessor and its Architecture

2–1 INTERNAL MICROPROCESSOR


ARCHITECTURE
• Before a program is written or instruction
investigated, internal configuration of the
microprocessor must be known.
• In a multiple core microprocessor each core
contains the same programming model.
• Each core runs a separate task or thread
simultaneously.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 2 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
The Programming Model
• 8086 through Core2 considered program
visible.
– registers are used during programming and are
specified by the instructions
• Other registers considered to be program
invisible.
– not addressable directly during applications
programming

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 3 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• 80286 and above contain program-invisible
registers to control and operate protected
memory.
– and other features of the microprocessor
• 80386 through Core2 microprocessors
contain full 32-bit internal architectures.
• 8086 through the 80286 are fully upward-
compatible to the 80386 through Core2.
• Figure 2–1 illustrates the programming model
8086 through Core2 microprocessor.
– including the 64-bit extensions
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 4 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–1 The programming model of the 8086 through the Core2 microprocessor
including the 64-bit extensions.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 5 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Multipurpose Registers
• RAX - a 64-bit register (RAX), a 32-bit register
(accumulator) (EAX), a 16-bit register (AX),
or as either of two 8-bit registers (AH and AL).

• The accumulator is used for instructions such


as multiplication, division, and some of the
adjustment instructions.

• Intel address bus may be expanded to 52 bits


to address 4P (peta) bytes of memory.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 6 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• RBX, addressable as RBX, EBX, BX, BH, BL.
– BX register (base index) sometimes holds offset
address of a location in the memory system in all
versions of the microprocessor
• RCX, as RCX, ECX, CX, CH, or CL.
– a (count) general-purpose register that also holds
the count for various instructions
• RDX, as RDX, EDX, DX, DH, or DL.
– a (data) general-purpose register
– holds a part of the result from a multiplication
or part of dividend before a division

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 7 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• RBP, as RBP, EBP, or BP.
– points to a memory (base pointer) location
for memory data transfers
• RDI addressable as RDI, EDI, or DI.
– often addresses (destination index) string
destination data for the string instructions
• RSI used as RSI, ESI, or SI.
– the (source index) register addresses source
string data for the string instructions
– like RDI, RSI also functions as a general-
purpose register

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 8 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• R8 - R15 found in the Pentium 4 and Core2 if 64-bit
extensions are enabled.
– data are addressed as 64-, 32-, 16-, or 8-bit
sizes and are of general purpose
• Most applications will not use these registers until 64-bit
processors are common.
– the 8-bit portion is the rightmost 8-bit only
– bits 8 to 15 are not directly addressable as
a byte
– Override used to access portion of a 64-bit register. E.g. MOV
R9B, R10B // 8 bit operation
MOV R10W, AX // 16 bit operation
MOV R14D, R15D // 32 bit operation
MOV R13, R12 // 64 bit operation
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 9 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Special-Purpose Registers
• Include RIP, RSP, and RFLAGS
– segment registers include CS, DS, ES, SS, FS,
and GS
• RIP addresses the next instruction in a section
of memory.
– defined as (instruction pointer) a code segment
• RSP addresses an area of memory called
the stack.
– the (stack pointer) stores data through this pointer

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 10 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• RFLAGS indicate the condition of the
microprocessor and control its operation.
• Figure 2–2 shows the flag registers of all
versions of the microprocessor.
• Flags are upward-compatible from the
8086/8088 through Core2 .
• The rightmost five and the overflow flag are
changed by most arithmetic and logic
operations.
– although data transfers do not affect them

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 11 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–2 The EFLAG and FLAG register counts for the entire 8086 and Pentium
microprocessor family.

• Flags never change for any data transfer or


program control operation.
• Some of the flags are also used to control
features found in the microprocessor.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 12 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
List of Each Flag bit, with a brief
description of function.
• C (carry) holds the carry after addition or
borrow after subtraction.
– also indicates error conditions
• P (parity) is the count of ones in a number
expressed as even or odd. Logic 0 for odd
parity; logic 1 for even parity.
– if a number contains three binary one bits, it has
odd parity; If a number contains no one bits, it
has even parity
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 13 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• A (auxiliary carry) holds the carry (half-carry)
after addition or the borrow after subtraction
between bit positions 3 and 4 of the result.
• Z (zero) shows that the result of an
arithmetic or logic operation is zero.
• S (sign) flag holds the arithmetic sign of the
result after an arithmetic or logic instruction
executes.
• T (trap) The trap flag enables trapping
through an on-chip debugging feature.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 14 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• I (interrupt) controls operation of the INTR
(interrupt request) input pin.
• D (direction) selects increment or
decrement mode for the DI and/or SI
registers.
• O (overflow) occurs when signed numbers
are added or subtracted.
– an overflow indicates the result has exceeded
the capacity of the machine

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 15 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• IOPL used in protected mode operation
to select the privilege level for I/O devices.
• NT (nested task) flag indicates the current
task is nested within another task in protected
mode operation.
• RF (resume) used with debugging to
control resumption of execution after the next
instruction.
• VM (virtual mode) flag bit selects virtual
mode operation in a protected mode system.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 16 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• AC, (alignment check) flag bit activates if a
word or double word is addressed on a non-
word or non-double word boundary.
• VIF is a copy of the interrupt flag bit available
to the Pentium 4–(virtual interrupt)
• VIP (virtual) provides information about a
virtual mode interrupt for (interrupt pending)
Pentium.
– used in multitasking environments to provide
virtual interrupt flags
– Used for providing information about “Pending
Interrupt”
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 17 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• ID (identification) flag indicates that the
Pentium microprocessors support the CPUID
instruction.
– CPUID instruction provides the system with
information about the Pentium microprocessor

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 18 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Segment Registers
• Generate memory addresses when
combined with other registers in the
microprocessor.
• Four or six segment registers in various
versions of the microprocessor.
• A segment register functions differently in
real mode than in protected mode.
• Following is a list of each segment register,
along with its function in the system.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 19 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• CS (code) segment holds code (programs
and procedures) used by the microprocessor.
• DS (data) contains most data used by a
program.
– Data are accessed by an offset address or
contents of other registers that hold the offset
address
• ES (extra) an additional data segment used
by some instructions to hold destination data.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 20 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• SS (stack) defines the area of memory used
for the stack.
– stack entry point is determined by the stack
segment and stack pointer registers
– the BP register also addresses data within
the stack segment

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 21 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• FS and GS segments are supplemental
segment registers available in 80386–Core2
microprocessors.
– allow two additional memory segments for
access by programs
• Windows uses these segments for internal
operations, but no definition of their usage
is available.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 22 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
2–2 REAL MODE MEMORY
ADDRESSING
• 80286 and above operate in either the real or
protected mode.
• Real mode operation allows addressing of
only the first 1M byte of memory space—even
in Pentium 4 or Core2 microprocessor.
– the first 1M byte of memory is called the real
memory, conventional memory, or DOS
memory system

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 23 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Segments and Offsets
• All real mode memory addresses must consist
of a segment address plus an offset address.
– segment address defines the beginning address
of any 64K-byte memory segment
– offset address selects any location within the
64K byte memory segment
• Figure 2–3 shows how the segment plus
offset addressing scheme selects a memory
location.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 24 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–3 The real mode memory-addressing scheme, using a segment address
plus an offset.

– this shows a memory


segment beginning at
10000H, ending at
location IFFFFH
• 64K bytes in length

– also shows how an


offset address, called a
displacement, of
F000H selects location
1F000H in the memory
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 25 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• Once the beginning address is known, the
ending address is found by adding FFFFH.
– because a real mode segment of memory is64K
in length
• The offset address is always added to the
segment starting address to locate the data.
• Segment and offset address is sometimes
written as 1000:2000.
– a segment address of 1000H; an offset of 2000H,
points physical address 12000H

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 26 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Example of Real Mode Segment Addresses

Segment Starting Address Ending Address


Register
2000H 20000H 2FFFFH

2001H 20010H 3000FH

AB00H AB000H BAFFFH

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 27 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Default Segment and Offset Registers
• The microprocessor has rules that apply to segments
whenever memory is addressed.
– these define the segment and offset register combination
• The code segment register defines the start of the code
segment.
– The instruction pointer locates the next instruction within
the code segment.
• Another of the default combinations is the stack.
– stack data are referenced through the stack segment at the
memory location addressed by either the stack pointer
(SP/ESP) or the pointer (BP/EBP)

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 28 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Default pairs of Segment and Offset
– CS & IP/EIP Instruction Address
– SS & SP/ESP BP/EBP Stack Address
– DS & BX/EBX, DI/EDI, SI/ESI Data Address
– ES & DI /EDI String Destination address
• Figure 2–4 shows a system that contains four
memory segments.
– a memory segment can touch or overlap if 64K
bytes of memory are not required for a segment

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 29 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–4 A memory system showing the placement of four memory segments.

– think of segments as
windows that can be
moved over any area
of memory to access
data or code
– a program can have
more than four or six
segments,
• but only access four or
six segments at a time

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 30 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Segment and Offset Addressing
Scheme Allows Relocation
• Segment plus offset addressing allows DOS
programs to be relocated in memory.
• A relocatable program is one that can be
placed into any area of memory and executed
without change.
• Relocatable data are data that can be placed
in any area of memory and used without any
change to the program.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 31 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• Because memory is addressed within a
segment by an offset address, the memory
segment can be moved to any place in the
memory system without changing any of the
offset addresses.
• Only the contents of the segment register
must be changed to address the program
in the new area of memory.
• Windows programs are written assuming that
the first 2G of memory are available for code
and data.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 32 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
2–3 INTRO TO PROTECTED MODE
MEMORY ADDRESSING
• Allows access to data and programs located
within & above the first 1M byte of memory.
• Protected mode is where Windows operates.
• In place of a segment address, the segment
register contains a selector that selects a
descriptor from a descriptor table.
• The descriptor describes the memory
segment’s location, length, and access rights.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 33 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Selectors and Descriptors
• The descriptor is located in the segment
register & describes the location, length, and
access rights of the segment of memory.
– it selects one of 8192 descriptors from one
of two tables of descriptors
• In protected mode, this segment number can
address any memory location in the system
for the code segment.
• Indirectly, the register still selects a memory
segment, but not directly as in real mode.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 34 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• Global descriptors contain segment
definitions that apply to all programs.
• Local descriptors are usually unique to an
application.
– a global descriptor might be called a system
descriptor, and local descriptor an application
descriptor
• Figure 2–6 shows the format of a descriptor
for the 80286 through the Core2.
– each descriptor is 8 bytes in length
– global and local descriptor tables are a
maximum of 64K bytes in length
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 35 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–6 The 80286 through Core2 64-bit descriptors.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 36 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• The base address of the descriptor indicates
the starting location of the memory segment.
– the paragraph boundary limitation is removed in
protected mode
– segments may begin at any address
• The G, or granularity bit allows a segment
length of 4K to 4G bytes in steps of 4K bytes.
– 32-bit offset address allows segment lengths of
4G bytes
– 16-bit offset address allows segment lengths of
64K bytes.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 37 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• Operating systems operate in a 16- or 32-bit
environment.
• DOS uses a 16-bit environment.
• Most Windows applications use a 32-bit
environment called WIN32.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 38 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• The access rights byte controls access to
the protected mode segment.
– describes segment function in the system and
allows complete control over the segment
– if the segment is a data segment, the direction of
growth is specified
• If the segment grows beyond its limit, the
operating system is interrupted, indicating
a general protection fault.
• You can specify whether a data segment
can be written or is write-protected.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 39 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–7 The access rights byte for the 80286 through Core2 descriptor.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 40 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• Descriptors are chosen from the descriptor
table by the segment register.
– register contains a 13-bit selector field, a table
selector bit, and requested privilege level field
• The TI bit selects either the global or the local
descriptor table.
• Requested Privilege Level (RPL) requests
the access privilege level of a memory
segment.
– If privilege levels are violated, system normally
indicates an application or privilege level violation
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 41 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–8 The contents of a segment register during protected mode operation of
the 80286 through Core2 microprocessors.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 42 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
• Figure 2–9 shows how the segment register,
containing a selector, chooses a descriptor
from the global descriptor table.
• The entry in the global descriptor table selects
a segment in the memory system.
• Descriptor zero is called the null descriptor,
must contain all zeros, and may not be used
for accessing memory.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 43 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–9 Using the DS register to select a description from the global descriptor
table. In this example, the DS register accesses memory locations 00100000H–
001000FFH as a data segment.

GDT value:

00 00 92 10
00 00 00 FF

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 44 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
2–5 Flat Mode Memory
• A flat mode memory system is one in which
there is no segmentation.
– does not use a segment register to address a
location in the memory
• First byte address is at 00 0000 0000H; the
last location is at FF FFFF FFFFH.
– address is 40-bits

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 45 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Flat Mode Memory
•The segment register still selects the privilege
level of the software.
•Real mode system is not available if the
processor operates in the 64-bit mode.
•Protection and paging are allowed in the 64-bit
mode.
•The CS register is still used in the protected
mode operation in the 64-bit mode.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 46 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
Figure 2–15 The 64-bit flat mode memory model.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 47 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY
• The programming model of the 8086
through 80286 contains 8- and 16-bit
registers.
• The programming model of the 80386 and
above contains 8-, 16-, and 32-bit extended
registers as well as two additional 16-bit
segment registers: FS and GS.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 48 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• 8-bit registers are AH, AL, BH, BL, CH, CL,
DH, and DL.
• 16-bit registers are AX, BX, CX, DX, SP,
BP, DI, and SI.
• The segment registers are CS, DS, ES, SS,
FS, and GS.
• 32-bit extended registers are EAX, EBX,
ECX, EDX, ESP, EBP, EDI, and ESI.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 49 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• The 64-bit registers in a Pentium 4 with 64-
bit extensions are RAX, RBX, RCX, RDX,
RSP, RBP, RDI, RSI, and R8 through R15.
• In addition, the microprocessor contains an
instruction pointer (IP/EIP/RIP) and flag
register (FLAGS, EFLAGS, or RFLAGS).
• All real mode memory addresses are a
combination of a segment address plus an
offset address.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 50 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• The starting location of a segment is
defined by the 16-bit number in the
segment register that is appended with a
hexadecimal zero at its rightmost end.
• The offset address is a 16-bit number
added to the 20-bit seg-ment address to
form the real mode memory address.
• All instructions (code) are accessed by the
combination of CS (segment ad-dress) plus
IP or EIP (offset address).
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 51 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• Data are normally referenced through a
combination of the DS (data segment) and
either an offset address or the contents of a
register that contains the offset address.
• The 8086-Core2 use BX, DI, and SI as
default offset registers for data if 16-bit
registers are selected.
• The 80386 and above can use the 32-bit
registers EAX, EBX, ECX, EDX, EDI, and
ESI as default offset registers for data.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 52 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• Protected mode operation allows memory
above the first 1M byte to be accessed by
the 80286 through the Core2
microprocessors.
• This extended memory system (XMS) is
accessed via a segment address plus an
offset address, just as in the real mode.
• In the protected mode, the segment starting
address is stored in a descriptor that is
selected by the segment register.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 53 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• A protected mode descriptor contains a
base address, limit, and access rights byte.
• The base address locates the starting
address of the memory segment; the limit
defines the last location of the segment.
• The access rights byte defines how the
memory segment is accessed via a
program.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 54 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• The 80286 microprocessor allows a
memory segment to start at any of its 16M
bytes of memory using a 24-bit base
address.
• The 80386 and above allow a memory
segment to begin at any of its 4G bytes of
memory using a 32-bit base address.
• This allows an 80286 memory segment limit
of 64K bytes, and an 80386 and above
mem-ory segment limit of either 1M bytes.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 55 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• The segment register contains three fields
of information in the protected mode.
• The leftmost 13 bits of the segment register
address one of 8192 descriptors from a
descriptor table.
• The program-invisible registers are used by
the 80286 and above to access the
descriptor tables.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 56 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• Each segment register contains a cache
portion that is used in protected mode to
hold the base address, limit, and access
rights acquired from a descriptor.
• The cache allows the microprocessor to
access the memory segment without again
referring to the descriptor table until the
segment register's contents are changed.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 57 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• A memory page is 4K bytes in length. The
linear address, as generated by a program,
can be mapped to any physical address
through the paging mechanism found within
the 80386 through the Pentium 4.
• Memory paging is accomplished through
control registers CR0 and CR3.
• The PG bit of CR0 enables paging, and the
contents of CR3 addresses the page
directory.
The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,
Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 58 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY (cont.)
• The page directory contains up to 1024
page table addresses that are used to
access paging tables.
• The page table contains 1024 entries that
locate the physical address of a 4K-byte
memory page.
• The TLB (translation look-aside buffer)
caches the 32 most recent page table
translations.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 59 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey
SUMMARY
• The flat mode memory contains 1T byte of
memory using a 40-bit address.
• In the future, Intel plans to increase the
address width to 52 bits to access 4P bytes
of memory.
• The flat mode is only available in the
Pentium 4 and Core2 that have their 64-bit
extensions enabled.

The Intel Microprocessors: 8086/8088, 80186/80188, 80286, 80386, 80486 Pentium,


Pentium Pro Processor, Pentium II, Pentium, 4, and Core2 with 64-bit Extensions Copyright ©2009 by Pearson Education, Inc.
Architecture, Programming, and Interfacing, Eighth Edition 60 Upper Saddle River, New Jersey 07458 • All rights reserved.
Barry B. Brey

You might also like