Download
mode of operation n.
Skip this Video
Loading SlideShow in 5 Seconds..
Mode of Operation PowerPoint Presentation
Download Presentation
Mode of Operation

Mode of Operation

177 Views Download Presentation
Download Presentation

Mode of Operation

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