Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 7 Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU.

Similar presentations


Presentation on theme: "Lecture 7 Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU."— Presentation transcript:

1 Lecture 7 Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU

2 Real Mode Memory Addressing The first 1MB memory is Real memory or the Conventional memory 16 bit Segment registers ****** Segment 1 Segment 2 Segment n 0000h CS 8000h DS A000h SS 1MB offset 1.1 MB requires 20 bit address 2.Each segment is 64 KB 3.Offset address is 16 bit or 2 byte 4.Actual address = segment address + offset address

3 Real Mode Memory Addressing Real mode operation allows to address 1MB of memory space – even for the Pentium microprocessor This first 1MB memory is called the real memory or the conventional memory A combination of segment and offset address access the real memory Segment registers contains the beginning address of any 64KB memory segment The offset address selects the any location within the 64KB memory space

4 Segment Plus Offset Determines Address From Intel Microprocessor To get the real address 1.Pad 0H at the end of segment register 2.Add the offset value 1.Since each segment is 64 K, the offset address can take maximum of FFFFH 2.Once, the beginning address is found in segment registers, ending address is calculated by adding FFFFH with the value of segment register after padding 0H after it H F000H 1F000H CS= 1000H Offset= F000H 12340H 245FH 1479FH DS= 1234H Offset= 245FH

5 Default Segment and Offset Registers 1.If CS = 1400H and IP/EIP = 1200 H 2.The microprocessor access instruction from H+ 1200H = 15200H.

6 Figure 2-4: A memory system showing the placement of four memory segments Suppose H bytes of code 2.190H bytes of data 3.200H bytes of stack Figure 2-5 Allows relocation

7 Protected Mode The segment register now contains a selector Selector selects a descriptor from a descriptor table The descriptor describes the memory segment’s location Two descriptor table – Global Descriptor Table (GDT) – Local Descriptor Table (LDT)

8 Selectors and Descriptors ****** Offset GDT/LDT 8191 * Segment Registers As Selector number of descriptors in each table 2.Each descriptor 8 bytes long, thus table size is 64 KB 3.Selector selects one descriptor 4.Descriptor describes the segment

9 Selectors and Descriptors CS/DS/ES Offset GDT/LDT 8191 * Segment Register H H FFF0H

10 Selectors and Descriptors CS/DS/ES Offset GDT/LDT 8191 * 2 1 0

11 Access Right Bits

12 Selectors and Descriptors CS/DS/ES Offset GDT/LDT 8191 * A0H C2H 00H 10H 00H

13 Selectors and Descriptors CS/DS/ES Offset GDT/LDT 8191 * H 21H 00H 1FH Code a descriptor for that starts at H and ends at 21001FH. This memory segment is a code segment that can be read Limit = 21001FH – H = 001FH

14 Selectors and Descriptors H 21H 00H 1FH 1xx1 1x Code a descriptor for that starts at H and ends at 21001FH. This memory segment is a code segment that can be read Limit = 21001FH – H = 001FH

15 Selectors and Descriptors 32 bit / 4 byte base, memory size is 4 GB = 2 2 x2 10 x2 10 x2 10 AV = 1, means available, 0 means not available D = 1, means 32 bit instructions, 0 means 16 bit instructions G bit or the Granularity bit – G = 0, the limit is from 1 to 1MB in length – G = 1, the limit is multiplied by 4K bytes (appended with 000H). So segment length is 4K to 4G bytes in steps of 4K bytes

16 Selectors and Descriptors G bit or the Granularity bit – G = 0, the limit is from 1 to 1MB in length – G = 1, the limit is multiplied by 4K bytes (appended with 000H). So segment length is 4K to 4G bytes in steps of 4K bytes 00H 01H 00H 0H FFH DO AVAV Start = H Limit = 0FFFFH End = 0100FFFFH

17 Selectors and Descriptors G bit or the Granularity bit – G = 0, the limit is from 1 to 1MB in length – G = 1, the limit is multiplied by 4K bytes (appended with 000H). So segment length is 4K to 4G bytes in steps of 4K bytes 00H 28H 0H 00H 10H DO AVAV Start = H Limit = End = H H

18 G bit or the Granularity bit – G = 0, the limit is from 1 to 1MB in length – G = 1, the limit is multiplied by 4K bytes (appended with 000H). So segment length is 4K to 4G bytes in steps of 4K bytes 00H 03H 00H 0H 2FH FFH G DO AVAV End = 05FFFFFFH Start = H Size = 02FFFFFFH Limit = 02FFFH 1

19 00H 03H 00H 0H 2FH FFH G DO AVAV End = 05FFFFFFH Start = H Size = 02FFFFFFH Limit = 02FFFH 1 1xx1 001x

20 References Chapter 2, Intel Microprocessors – by Brey


Download ppt "Lecture 7 Presented By Dr. Shazzad Hosain Asst. Prof. EECS, NSU."

Similar presentations


Ads by Google