x86 memory management n.
Download
Skip this Video
Download Presentation
x86 Memory Management

Loading in 2 Seconds...

play fullscreen
1 / 23

x86 Memory Management - PowerPoint PPT Presentation


  • 61 Views
  • Uploaded on

x86 Memory Management. Reviewing Some Terms New Terms Translating Addresses Converting Logical to Linear Address Page Translation. Reviewing Some Terms.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'x86 Memory Management' - kadeem-cooke


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
x86 memory management
x86 Memory Management
  • Reviewing Some Terms
  • New Terms
  • Translating Addresses
  • Converting Logical to Linear Address
  • Page Translation

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

reviewing some terms
Reviewing Some Terms
  • Multitasking permits multiple programs (or tasks) to run at the same time. The processor divides up its time between all of the running programs.
  • Segments are variable-sized areas of memory used by a program containing either code or data.
  • Segmentation provides a way to isolate memory segments from each other. This permits multiple programs to run simultaneously without interfering with each other.
  • A segment descriptor is a 64-bit value that identifies and describes a single memory segment: it contains information about the segment’s base address, access rights, size limit, type, and usage.

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

new terms
New Terms
  • A segment selector is a 16-bit value stored in a segment register (CS, DS, SS, ES, FS, or GS).
    • provides an indirect reference to a memory segment
  • A logical address is a combination of a segment selector and a 32-bit offset.

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

translating addresses
Translating Addresses
  • The x86 processor uses a one- or two-step process to convert a variable's logical address into a unique memory location.
  • The first step combines a segment value with a variable’s offset to create a linear address.
  • The second optional step, called page translation, converts a linear address to a physical address.

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

converting logical to linear address
Converting Logical to Linear Address

The segment selector points to a segment descriptor, which contains the base address of a memory segment. The 32-bit offset from the logical address is added to the segment’s base address, generating a 32-bit linear address.

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

indexing into a descriptor table
Indexing into a Descriptor Table

Each segment descriptor indexes into the program's local descriptor table (LDT). Each table entry is mapped to a linear address:

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

paging 1 of 2
Paging (1 of 2)
  • Paging makes it possible for a computer to run a combination of programs that would not otherwise fit into memory.
  • Only part of a program must be kept in memory, while the remaining parts are kept on disk.
  • The memory used by the program is divided into small units called pages.
  • As the program runs, the processor selectively unloads inactive pages from memory and loads other pages that are immediately required.

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

paging 2 of 2
Paging (2 of 2)
  • OS maintains page directory and page tables
  • Page translation: CPU converts the linear address into a physical address
  • Page fault: occurs when a needed page is not in memory, and the CPU interrupts the program
  • OS copies the page into memory, program resumes execution

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

ms dos and the ibm pc
MS-DOS and the IBM-PC
  • Real-Address Mode
  • MS-DOS Memory Organization
  • MS-DOS Memory Map
  • Redirecting Input-Output
  • Software Interrupts
  • INT Instruction
  • Interrupt Vectoring Process
  • Common Interrupts

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

real address mode
Real-Address Mode
  • Real-address mode (16-bit mode) programs have the following characteristics:
    • Max 1 megabyte addressable RAM
    • Single tasking
    • No memory boundary protection
    • Offsets are 16 bits
  • IBM PC-DOS: first Real-address OS for IBM-PC
    • Has roots in Gary Kildall's highly successful Digital Research CP/M
    • Later renamed to MS-DOS, owned by Microsoft

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

ms dos memory organization
MS-DOS Memory Organization
  • Interrupt Vector Table
  • BIOS & DOS data
  • Software BIOS
  • MS-DOS kernel
  • Resident command processor
  • Transient programs
  • Video graphics & text
  • Reserved (device controllers)
  • ROM BIOS

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

ms dos memory map
MS-DOS Memory Map

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

redirecting input output 1 of 2
Redirecting Input-Output (1 of 2)
  • Input-output devices and files are interchangeable
  • Three primary types of I/O:
    • Standard input (console, keyboard)
    • Standard output (console, display)
    • Standard error (console, display)
  • Symbols borrowed from Unix:
    • < symbol: get input from
    • > symbol: send output to
    • | symbol: pipe output from one process to another
  • Predefined device names:
    • PRN, CON, LPT1, LPT2, NUL, COM1, COM2

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

redirecting input output 2 of 2
Redirecting Input-Output (2 of 2)
  • Standard input, standard output can both be redirected
  • Standard error cannot be redirected
  • Suppose we have created a program named myprog.exe that reads from standard input and writes to standard output. Following are MS-DOS commands that demonstrate various types of redirection:

myprog < infile.txt

myprog > outfile.txt

myprog < infile.txt > outfile.txt

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

int instruction
INT Instruction
  • The INT instruction executes a software interrupt.
  • The code that handles the interrupt is called an interrupt handler.
  • Syntax:

INT number

(number = 0..FFh)

The Interrupt Vector Table (IVT) holds a 32-bit segment-offset address for each possible interrupt handler.

Interrupt Service Routine (ISR) is another name for interrupt handler.

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

interrupt vectoring process
Interrupt Vectoring Process

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

common interrupts
Common Interrupts
  • INT 10h Video Services
  • INT 16h Keyboard Services
  • INT 17h Printer Services
  • INT 1Ah Time of Day
  • INT 1Ch User Timer Interrupt
  • INT 21h MS-DOS Services

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

what s next
What's Next
  • MS-DOS and the IBM-PC
  • MS-DOS Function Calls (INT 21h)
  • Standard MS-DOS File I/O Services

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

ms dos function calls int 21h
MS-DOS Function Calls (INT 21h)
  • ASCII Control Characters
  • Selected Output Functions
  • Selected Input Functions
  • Example: String Encryption
  • Date/Time Functions

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

int 4ch terminate process
INT 4Ch: Terminate Process
  • Ends the current process (program), returns an optional 8-bit return code to the calling process.
  • A return code of 0 usually indicates successful completion.

mov ah,4Ch ; terminate process

mov al,0 ; return code

int 21h

; Same as:

.EXIT 0

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

selected output functions
Selected Output Functions
  • ASCII control characters
  • 02h, 06h - Write character to standard output
  • 05h - Write character to default printer
  • 09h - Write string to standard output
  • 40h - Write string to file or device

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

ascii control characters
ASCII Control Characters
  • 08h - Backspace (moves one column to the left)
  • 09h - Horizontal tab (skips forward n columns)
  • 0Ah - Line feed (moves to next output line)
  • 0Ch - Form feed (moves to next printer page)
  • 0Dh - Carriage return (moves to leftmost output column)
  • 1Bh - Escape character

Many INT 21h functions act upon the following control characters:

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.

int 21h functions 02h and 06h write character to standard output

Write a backspace to standard output:

mov ah,06h

mov dl,08h

int 21h

INT 21h Functions 02h and 06h: Write Character to Standard Output

Write the letter 'A' to standard output:

mov ah,02h

mov dl,’A’

int 21h

or: mov ah,2

Irvine, Kip R. Assembly Language for x86 Processors 6/e, 2010.