1 / 38

Mode of Operation

Mode of Operation. Protected mode 4 GB 32-bit address Windows, Linux Real-address mode 1 MB space 20-bit address MS-DOS. Real-Address mode. 1 MB RAM maximum addressable Application programs can access any area of memory Single tasking Supported by MS-DOS operating system.

Download Presentation

Mode of Operation

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mode of Operation • Protected mode • 4 GB • 32-bit address • Windows, Linux • Real-address mode • 1 MB space • 20-bit address • MS-DOS

  2. Real-Address mode • 1 MB RAM maximum addressable • Application programs can access any area of memory • Single tasking • Supported by MS-DOS operating system

  3. Segmented Memory Segmented memory addressing: absolute (linear) address is a combination of a 16-bit segment value added to a 16-bit offset

  4. Calculating Linear Addresses • Given a segment address, multiply it by 16 (add a hexadecimal zero), and add it to the offset • Example: convert 08F1:0100 to a linear address Adjusted Segment value: 0 8 F 1 0 Add the offset: 0 1 0 0 Linear address: 0 9 0 1 0

  5. Protected Mode • 4 GB addressable RAM • (00000000 to FFFFFFFFh) • Each program assigned a memory partition which is protected from other programs • Designed for multitasking • Supported by Linux & MS-Windows

  6. Flat Model • All segments are mapped to the entire 32-bit physical address space of the compter.. Each segment is defined by a segment descriptor, a 64-bit value stored in a table known as the global descriptor table (GDT).

  7. Multi-Segment Model • Each program has a local descriptor table (LDT) • holds descriptor for each segment used by the program

  8. 32-Bit Windows Programming

  9. Standard Console Handles A handle is an unsigned 32-bit integer. The following MS-Windows constants are predefined: • STD_INPUT_HANDLE • standard input • STD_OUTPUT_HANDLE • standard output • STD_ERROR_HANDLE • standard error output

  10. GetStdHandle • GetStdHandle returns a handle to a console stream • Specify the type of handle (see previous slide) • The handle is returned in EAX • Prototype: GetStdHandle PROTO, nStdHandle:DWORD ; handle type

  11. ReadConsole • The ReadConsole function provides a convenient way to read text input and put it in a buffer. • Prototype: ReadConsole PROTO, handle:DWORD, ; input handle pBuffer:PTR BYTE, ; pointer to buffer maxBytes:DWORD, ; number of chars to read pBytesRead:PTR DWORD, ; ptr to num bytes read notUsed:DWORD ; (not used)

  12. ReadConsole Example

  13. ReadConsole Example

  14. ReadConsole Example

  15. ReadConsole Example

  16. WriteConsole • The WriteConsole function writes a string to the screen, using the console output handle. Prototype: WriteConsole PROTO, handle:DWORD, ; output handle pBuffer:PTR BYTE, ; pointer to buffer bufsize:DWORD, ; size of buffer pCount:PTR DWORD, ; output count lpReserved:DWORD ; (not used)

  17. WriteConsole Example

  18. WriteConsole Example

  19. WriteConsole Example

  20. CreateFile • CreateFile either creates a new file or opens an existing file. If successful, it returns a handle to the open file; otherwise, it returns a special constant named INVALID_HANDLE_VALUE. • Prototype: CreateFile PROTO, pFilename:PTR BYTE, ; ptr to filename desiredAccess:DWORD, ; access mode shareMode:DWORD, ; share mode lpSecurity:DWORD, ; ptr to security attribs creationDisposition:DWORD, ; file creation options flagsAndAttributes:DWORD, ; file attributes htemplate:DWORD ; handle to template file

  21. CreateFile Example Opens an existing file for reading: INVOKE CreateFile, ADDR filename, ; ptr to filename GENERIC_READ, ; access mode DO_NOT_SHARE, ; share mode NULL, ; ptr to security attributes OPEN_EXISTING, ; file creation options FILE_ATTRIBUTE_NORMAL, ; file attributes 0 ; handle to template file

  22. CreateFile Example Opens an existing file for writing: INVOKE CreateFile, ADDR filename, GENERIC_WRITE, ; access mode DO_NOT_SHARE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0

  23. CreateFile Example Creates a new file with normal attributes, erasing any existing file by the same name: INVOKE CreateFile, ADDR filename, GENERIC_WRITE, DO_NOT_SHARE, NULL, CREATE_ALWAYS, ; overwrite existing file FILE_ATTRIBUTE_NORMAL, 0

  24. ReadFile • ReadFile reads text from an input file • Prototype: ReadFile PROTO, handle:DWORD, ; handle to file pBuffer:PTR BYTE, ; ptr to buffer nBufsize:DWORD, ; num bytes to read pBytesRead:PTR DWORD, ; bytes actually read pOverlapped:PTR DWORD ; ptr to asynch info

  25. ReadFile Example

  26. ReadFile Example

  27. ReadFile Example

  28. WriteFile • WriteFile writes data to a file, using an output handle. The handle can be the screen buffer handle, or it can be one assigned to a text file. • Prototype: WriteFile PROTO, fileHandle:DWORD, ; output handle pBuffer:PTR BYTE, ; pointer to buffer nBufsize:DWORD, ; size of buffer pBytesWritten:PTR DWORD, ; num bytes written pOverlapped:PTR DWORD ; ptr to asynch info

  29. WriteFile Example

  30. WriteFile Example

  31. WriteFile Example

  32. 16-Bit MS-DOS Programming

  33. Interrupt • Do something else, and get interrupted when I/O events happen. • May be triggered by hardware or software.

  34. INT I/O Example

  35. INT I/O Example

  36. Interrupt Vector Processing

  37. Interrupt Vector Processing

  38. 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

More Related