#[1]Dr. Dobb's All Articles [2]Dr. Dobb's All Articles [tr?id=832000476880185&ev=PageView&noscript=1] (BUTTON) Informa Dr. Dobb's is part of the Informa Tech Division of Informa PLC * [3]Informa PLC * [4]About us * [5]Investor relations * [6]Talent This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726. * [7]Subscribe * [8]Newsletters * [9]Digital Library * [10]RSS * ________________________________________ * Submit Search: (*) Site ( ) Source Code * [11]Home * [12]Articles * [13]News * [14]Blogs * [15]Source Code * [16]Webinars & Events * [17]Facebook * [18]Twitter Sections v * [19]Home * [20]Articles * [21]News * [22]Blogs * [23]Source Code * [24]Webinars & Events * [25]Cloud * [26]Mobile * [27]Parallel * [28].NET * [29]JVM Languages * [30]C/C++ * [31]Tools * [32]Design * [33]Testing * [34]Web Dev * [35]Jolt Awards Channels v * [36]Cloud * [37]Mobile * [38]Parallel * [39].NET * [40]JVM Languages * [41]C/C++ * [42]Tools * [43]Design * [44]Testing * [45]Web Dev * [46]Jolt Awards [47]RSS [48]Tweet [49][share_email_icon.gif] [50][share_print_icon.gif] [51]Permalink 80386 Protected Mode Initialization By Neal Margulis, October 01, 1988 In addition to discussing how to get from real- to protected-mode and back, Neal shows how to define greater tan 64K segments, and provides some general comments on the ins and outs of developing 32-bit software. Neal Margulis is an applications engineer for Intel Corp. and can be reached at 2625 Walsh Ave., SC4-40, Santa Clara, CA 95051. __________________________________________________________________ The 32-bit mode of the Intel 80386 and the 80386SX provides significant architectural advantages over the 80286. ln addition, software that takes advantage of these advanced features has significant performance improvements. An application program running in the 80386's native 32-bit mode typically executes from two to six times faster than the equivalent application written for the 80286. Furthermore, programs that manipulate large data structures are easier to write when you use the 32-bit mode of the 80386. Among the features that the 80386 provides over the 80286 are support for large segment sizes, 32-bit data operations, and paged memory management. The program presented here shows how to initialize the 80386 into protected mode, how to define segments greater than 64K in size, and how to return to real mode. You can use this program as a template for coding applications that use the 80386 features. Although the 80386SX has a reduced physical addressing space of 16 Mbytes (the maximum address space of AT architecture), its programming model is the same as that of the 80386. Thus the template can be used with it as well. This article explains how the code works and briefly describes how to adapt the template to suit your individual needs. You may also find it helpful to refer to one of many 80386 programming articles, such as "Programming on the 80386" (DDJ, October 1986). Additional information can be found in the Intel 80386 Programmers Reference Guide and the 80386 Data Sheet, as well as the book Programming the 80386 by Crawford and Gelsinger (Sybex Books). 32-Bit Data Operations The ability to operate on 32 bits of data adds power to arithmetic and logical instructions. While the 80286 generates only 16-bit data, the 80386 contains eight general-purpose 32-bit registers. Segments for 80386 protected mode are set to either use16 or use32, which indicates the default sizes for data and addressing. in real mode, the 80386 is limited to only use16 segments. An override prefix must be designated in order to perform 32-bit operations within a protected mode use16 segment. This results in greater program length and a possible decrease in performance. The 80386 in protected mode allows for both use16 and use32 segments. No override prefixes are necessary for 32-bit data operations or 32-bit addressing in a use32 segment. In the program shown in [52]Listing One, page 84, CSEG and C3 are use16 code segments because they must be executable from real mode, and PMODE segment is a use32 code segment. Large Segments The 64K limit on the segment size of the 80286 and the real mode 80386 hinder the addressing of large data arrays and of long sequences of code. Reloading segments is time consuming, disrupts the task at hand, and causes an unnatural breakup of procedures and data. The 80386 protected mode allows for segments up to 4 gigabytes in size. The base, limit, and granularity fields of segment descriptors specify the segment size and location in memory. The base represents a linear address and the segment size is determined by the limit and the granularity (G) bit. When the G bit is a zero, the actual limit is the 20-bit limit field of the descriptor (Maximum size 2^20 = 1 Mbyte). If the G bit is a one, then the limit field page granularity is multiplied by 4K. This gives a maximum limit of 4 gigabytes (2^20 * 2^12). The base's linear address is 32-bits long, thus allowing it to be specified anywhere within the 4-gigabyte address space. Segmentation is the basis for protection. Data and code segments can reside in separate, nonoverlapping areas of memory. In addition, privilege levels assigned to different segments provide a mechanism for limiting access to certain data or privileged instruction sequences (for both). The 80386 provides four privilege levels. In the program presented in [53]Listing One, all segments are of the highest privilege level (0). You can change this by modifying the segment descriptors and the selectors. 4-Gigabyte Addressing To use the increased segment sizes, the 80386 has expanded the instruction pointer to 32-bits and added new addressing modes. As a result, segment loads and stores within a procedure can be eliminated and the entire physical address space can be accessed as one segment. The template program sets up a data segment that starts at the base of video memory 0B8000H. The entire address space is accessible through a segment that begins at zero. The effective address of a memory operand can be obtained through an absolute address or through one of the register-base methods of the following form: [base register] + [(index register * scale) + displacement] The 80386 also has page translation by which linear addresses can be resolved to physical addresses. Page translation occurs when the PG bit in CR0 is set. Two levels of tables are used to address each page of memory. The higher-level table is the page directory, which addresses up to 1K second-level page tables. These second-level page tables address up to 1K pages, each being 4K. Because all pages are of equal size, page translation can reduce the memory fragmentation that occurs when using segmentation for on-demand memory allocation. The template program does not use paging, so all linear addresses are treated as the physical address. Setting Up the Descriptor Tables Before entering protected mode, you must set up descriptor tables and load the 80386 with pointers to these tables. While in real mode, the program in [54]Listing One sets up a global descriptor table (GDT) and does not require a local descriptor table. Starting at the memory location designated by the label GDT__table, successive 8-byte descriptor entries make up the GDT. MASM's STRUC feature makes coding of the entries much easier. Because DOS determines the memory location of the program at run time, the absolute addresses must also be calculated at run time. The template program determines the bases for each of the segments and the pointer to the descriptor table. This table pointer consists of a 32-bit linear address and a 16-bit limit. Such 48-bit (6-byte) objects are sometimes referred to as a PWORD or FWORD data type. Using a QWORD (8 bytes), as in this program, helps to maintain portability between assemblers. The Type field of the descriptor determines whether segments that use this descriptor contain code or data. Descriptors to specify gates, task state segments, and local descriptor tables are also available, but are not used in this example. Entering Protected Mode Having set up the descriptor table, it is simple to enter protected mode. The PE bit of Control Register Zero (CR0) is set to one, and then a jump is executed. The jump flushes the prefetch queue, which contains instructions that were decoded for execution in real mode. Either a near or a far jump will flush the prefetch queue. By using a far jump, the 80386 reloads the code segment register (CS) and the internal segment descriptor cache. The far jump instruction uses selector 08H, which is GDT entry 1. This is the PMODE segment entry. Execution in this segment allows native 32-bit operations. (Bits 15 through 3 of the selector determine the GDT table entry. Bit 2 is Table indicator, and bits 1 and 0 are the privilege level.) The Jump instructions are handcoded by using the define byte (DB) assembler directive. Opcode 0EAH specifies an intersegment jump, with the next two fields of the instruction being the offset and the segment selector operands. In this example, all of the offsets are zero because the jump targets are at the start of their respective segments. The offset size is either a 16-bit or 32-bit field. This is determined by the code segment type size in which the jump instruction occurs. The segment selector field of the jump instruction determines which descriptor table entry is the target segment for the jump. Returning to Real Mode Returning to real mode on the 80286 requires that you reset the processor. On an PC AT, this means saving the required processor contents, placing a reset code in the CMOS RAM, storing a return address in memory, and using the keyboard controller to reset the processor. Although 386 based ATs support this reset scheme, a much simpler and far faster way to return the 386 to real mode is available. In the C3 segment of the example program, the 80386 is returned to real mode by clearing the PE bit then executing a jump instruction to flush the instruction queue. To assure proper operation after returning to real mode, the segment registers must be loaded with real mode type selectors while still in protected mode. Entry 4 in the GDT represents what should be in the segment descriptor caches during real mode. They have a 64K limit with the base at zero and the top 2 bytes set to zero. Other Considerations In the early days of PCs, some programs took advantage of addresses wrapping around to zero after the limit of the 8088 was exceeded. When the 80286-based AT was introduced, it was necessary to emulate this address wrapping. An enable gate was added to address line 20. To prevent unwanted wrapping, you must enable this gate. The code for doing this is located in the IBM Technical References for the AT and PS/2. The procedures are different because the AT uses the keyboard controller to enable the address line. The programming example indicates where to insert the procedures for enabling and disabling of the address line. [LISTING ONE] _80386 PROTECTED MODE INITIALIZATION_ by Neal Margulis comment #***************************** Program by Neal Margulis -- Use MASM 5.0 #************************************* descriptor STRUC limit_0_15 dw 0 ; lowest 16 bits of segment limit base_0_15 dw 0 ; lowest 16 bits of base base_16_23 db 0 ; base bits 16-23 access db 0 ; Present bit, priv. level, type gran db 0 ; G bit, D/B bit , limit bits 16-19 base_24_31 db 0 ; base bits 24-31 descriptor ENDS code_seg_access equ 09AH ; Present, DPL=0, non-conforming,read/exec data_seg_access equ 092H ; Present, DPL=0, Expand-Up,writeable ; have screenbase equal B8000H for EGA or B0000H for monochrome screenbase EQU 0B8000H screenseg EQU 0B800H CSEG segment word use16 'code' assume cs:CSEG,ds:CSEG mov ax,CSEG mov ds, ax ; Make entries in GDT for PMODE segment as code or data mov ax, seg PMODE and eax, 0FFFFh shl eax, 4H mov ebx, eax shr eax, 16 mov gdt_PM_1.base_0_15, bx mov gdt_PM_2.base_0_15, bx mov gdt_PM_1.base_16_23,al mov gdt_PM_2.base_16_23,al ; Make entry in GDT for C3 segment as code mov ax,seg C3 and eax, 0FFFFH shl eax, 4H mov ebx, eax shr eax, 16 mov gdt_c3_5.base_0_15, bx mov gdt_c3_5.base_16_23,al ; Set up gdtr for lgdt instruction mov ax, cs and eax, 0FFFFH shl eax, 4H add eax, offset gdttbl mov dword ptr gdtaddr+2,eax lgdt gdtaddr ; set GDT address A20_ON: cld ; Clear direction flag cli ; Disable interrupts ; Enter Protected Mode mov eax,cr0 or eax,1 mov cr0,eax ; Enable protected mode ;flush prefetch queue DB 0EAH,0H,0H,08H,0H ; jmp to PMODE and execute gdtaddr label qword dw 48 dd ? dw 0 ; global descriptor table gdttbl label dword gdt_null descriptor <,,,,,> ; GDT entry 0 (null descriptor) gdt_PM_1 descriptor <0FFFFH,,,code_seg_access,0C0H,0> ; D bit ON gdt_PM_2 descriptor <0FFFFH,,,data_seg_access,08FH,> ; gdt_3 descriptor <0FFFFH,0,0,data_seg_access,08FH,0> gdt_rm_4 descriptor <0FFFFH,0,0,data_seg_access,08fH,0> gdt_c3_5 descriptor <0FFFFH,,,code_seg_access,080H,0> ; D bit OFF CSEG ends PMODE segment para public use32 'code' assume cs:PMODE mov ax, 18h ;selector 18H is 4 Gigabyte data segment with ; base at 0 mov es, ax mov fs, ax mov ax, 10h ; Data segment with base at 'c2seg' mov ds, ax mov cx, 025h mov edi,screenbase ; Addressing screen memory from protected mode display:mov byte ptr es:[edi],'P' add edi,2 mov byte ptr es:[edi],'M' add edi,2 mov byte ptr es:[edi],' ' add edi,2 loopne display db 0eah, 0h, 0h, 0h, 0h,28h, 0h ; jmp to c3 and execute align 16 pdat db 0ach lastpm label dword PMODE ends c3 segment para public use16 'code' assume cs:c3 mov ax, 20h ; Change segments back to have valid mov es, ax ; real mode attributes. mov ds, ax mov fs, ax mov eax,cr0 and eax, 07ffffffeh mov cr0,eax ; enter real mode jmp far ptr flushrl ; flush queue flushrl: mov ax, screenseg ; Address screen memory from real mode mov ds, ax sub edi, 0b8000h mov si,di mov byte ptr ds:[si],'C' ; Write to screen add si,2 mov byte ptr ds:[si],'3' A20_off: mov ah, 04ch ; DOS termination mov al, 01h int 21h c3 ends end Related Reading * [55]News * [56]Commentary News * [57]Tools To Build Payment-Enabled Mobile Apps * [58]Parasoft DevTest Shifts To Continuous * [59]A Datacenter Operating System For Data Developers * [60]XMind 6 Public Beta Now Available[61]More News» Commentary * [62]biicode 2.0 Is Buzzing * [63]Things That Go Boom * [64]Application Intelligence For Advanced Dummies * [65]Devart dbForge Studio For MySQL With Phrase Completion[66]More Commentary» * [67]Slideshow * [68]Video Slideshow * [69]Jolt Awards: The Best Books * [70]Developer Reading List * [71]The Most Underused Compiler Switches in Visual C++ * [72]Jolt Awards: Coding Tools[73]More Slideshows» Video * [74]Verizon App Challenge Winners * [75]IBM Mobile Developer Challenge * [76][email protected] Showcase * [77]Connected Vehicles[78]More Videos» * [79]Most Popular Most Popular * [80]RESTful Web Services: A Tutorial * [81]Lambda Expressions in Java 8 * [82]Developer Reading List: The Must-Have Books for JavaScript * [83]An Algorithm for Compressing Space and Time[84]More Popular» __________________________________________________________________ More Insights White Papers * [85]Maximize the Human Potential of Your SOC * [86]Real-time Endpoint Security with Automated Incident Response [87]More >> Reports * [88]Proven Success Factors for Endpoint Security * [89]Intel 471 Breach Report [90]More >> Webcasts * [91]4 Tips for Enabling Collaboration Among Remote Designers * [92]Why We're Still Stuck on Passwords [93]More >> __________________________________________________________________ INFO-LINK * * * * [dobbs_disqus_logo.gif] Currently we allow the following HTML tags in comments: Single tags These tags can be used alone and don't need an ending tag.
Defines a single line break
Defines a horizontal line Matching tags These require an ending tag - e.g. italic text
Defines an anchor Defines bold text Defines big text
Defines a long quotation Defines a table caption Defines a citation Defines computer code text Defines emphasized text
Defines a border around elements in a form

This is heading 1

This is heading 2

This is heading 3

This is heading 4

This is heading 5
This is heading 6 Defines italic text

Defines a paragraph

 Defines preformatted text
    Defines a short quotation
    Defines sample computer code text
    Defines small text
    Defines a section in a document
    Defines strikethrough text
    Defines strikethrough text
    Defines strong text
    Defines subscripted text
    Defines superscripted text
    Defines underlined text

   Dr. Dobb's encourages readers to engage in spirited, healthy debate,
   including taking us to task. However, Dr. Dobb's moderates all comments
   posted to our site, and reserves the right to modify or remove any
   content that it determines to be derogatory, offensive, inflammatory,
   vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr.
   Dobb's further reserves the right to disable the profile of any
   commenter participating in said activities.

   Disqus Tips To upload an avatar photo, first [94]complete your Disqus
   profile. | [95]View the list of supported HTML tags you can use to
   style comments. | Please read our [96]commenting policy.

Recent Articles

     * [97]Dr. Dobb's Archive
     * [98]Farewell, Dr. Dobb's
     * [99]Jolt Awards 2015: Coding Tools
     * [100]Thriving Among the APIs
     * [101]The Long Death of Project Hosting Sites

Most Popular

   [102]Stories [103]Blogs
     * [104]RESTful Web Services: A Tutorial
     * [105]Lambda Expressions in Java 8
     * [106]Developer Reading List: The Must-Have Books for JavaScript
     * [107]An Algorithm for Compressing Space and Time
     * [108]Why Build Your Java Projects with Gradle Rather than Ant or
       Maven?
     *
     *

     * [109]Read/Write Properties Files in Java
     * [110]Coding the JavaFX TableView
     * [111]Easy DOM Parsing in Java
     * [112]C++11: unique_ptr
     * [113]Making HTTP Requests From Java
     *
     *

This month's Dr. Dobb's Journal

                [114]Dr. Dobb's Digital Digest - October 2014

   [115]This month, Dr. Dobb's Journal is devoted to mobile programming.
   We introduce you to Apple's new Swift programming language, discuss the
   perils of being the third-most-popular mobile platform, revisit SQLite
   on Android , [116]and much more!
   [117]Download the latest issue today. >>

Upcoming Events

   [118]Live Events [119]WebCasts
     * [120][FREE Virtual Event] The Identity Crisis -

     [121]4 Tips for Enabling Collaboration Among Remote Designers

     [122]Tips for Keeping Your Enterprises' Password Stores Safe

     [123]Why We're Still Stuck on Passwords

     [124]Tools for Better Network Monitoring and Observability

     [125]The ROI Story: Identifying & Justifying Disruptive Technology

   [126]More Webcasts>>

Featured Reports



   [127]What's this?
     * [128]AI-Driven Testing: Bridging the Software Automation Gap
     * [129]2021 Digital Transformation Report
     * [130]Increased Cooperation Between Access Brokers, Ransomware
       Operators Reviewed
     * [131]SANS 2021 Cloud Security Survey
     * [132]The Infoblox Q1 2021 Cyberthreat Intelligence Report

   [133]More >>
   [smartbox.PNG]

Featured Whitepapers



   [134]What's this?
     * [135]Maximize the Human Potential of Your SOC
     * [136]Modernize your Security Operations with Human-Machine
       Intelligence
     * [137]AI in Cybersecurity: Using artificial intelligence to mitigate
       emerging security risks
     * [138]Avoid Unplanned Downtime From Ransomware
     * [139]Real-time Endpoint Security with Automated Incident Response

   [140]More >>
   [smartbox.PNG]

Most Recent Premium Content

   [141]Digital Issues
   2014
       Dr. Dobb's Journal
     * [142]November - Mobile Development
     * [143]August - Web Development
     * [144]May - Testing
     * [145]February - Languages
       Dr. Dobb's Tech Digest
     * [146]DevOps
     * [147]Open Source
     * [148]Windows and .NET programming
     * [149]The Design of Messaging Middleware and 10 Tips from Tech
       Writers
     * [150]Parallel Array Operations in Java 8 and Android on x86: Java
       Native Interface and the Android Native Development Kit
       2013
     * [151]January - Mobile Development
     * [152]February - Parallel Programming
     * [153]March - Windows Programming
     * [154]April - Programming Languages
     * [155]May - Web Development
     * [156]June - Database Development
     * [157]July - Testing
     * [158]August - Debugging and Defect Management
     * [159]September - Version Control
     * [160]October - DevOps
     * [161]November- Really Big Data
     * [162]December - Design
       2012
     * [163]January - C & C++
     * [164]February - Parallel Programming
     * [165]March - Microsoft Technologies
     * [166]April - Mobile Development
     * [167]May - Database Programming
     * [168]June - Web Development
     * [169]July - Security
     * [170]August - ALM & Development Tools
     * [171]September - Cloud & Web Development
     * [172]October - JVM Languages
     * [173]November - Testing
     * [174]December - DevOps

    IFRAME: [175]https://www.googletagmanager.com/ns.html?id=GTM-MMJM4JC

   Discover more from Informa Tech
     * [176]InformationWeek
     * [177]Interop
     * [178]Dark Reading
     * [179]Data Center Knowledge
     * [180]Network Computing
     * [181]IT Pro Today

   Working With Us
     * [182]Contact Us
     * [183]About Us
     * [184]Advertise
     * [185]Reprints

   Follow Dr. Dobb's on Social
     *
     *
     *
     *

   alt text of the logo
     * [186]Home
     * [187]Cookie Policy
     * [188]CCPA: Do not sell my personal info
     * [189]Privacy
     * [190]Terms

   Copyright © 2022 Informa PLC. Informa PLC is registered in England and
   Wales with company number 8860726 whose registered and head office is 5
   Howick Place, London, SW1P 1WG.

References

   Visible links:
   1. https://www.drdobbs.com/rss/all
   2. https://www.drdobbs.com/rss/all
   3. https://informa.com/
   4. https://informa.com/About-Us/
   5. https://informa.com/Investors/
   6. https://informa.com/Talent/
   7. https://www.drdobbs.com/subscribe/
   8. https://www.informationweek.com/profile.asp?update_newsletter=t
   9. https://www.informationweek.com/whitepaper/topic/developer
  10. https://www.drdobbs.com/rss/
  11. https://www.drdobbs.com/
  12. https://www.drdobbs.com/articles
  13. https://www.drdobbs.com/news
  14. https://www.drdobbs.com/blogs
  15. https://www.drdobbs.com/sourcecode
  16. http://www.informationweek.com/events/d/d-id/898857
  17. https://www.facebook.com/pages/Dr-Dobbs/17631669579
  18. https://twitter.com/dr_dobbs
  19. https://www.drdobbs.com/
  20. https://www.drdobbs.com/articles
  21. https://www.drdobbs.com/news
  22. https://www.drdobbs.com/blogs
  23. https://www.drdobbs.com/sourcecode
  24. http://www.informationweek.com/events/d/d-id/898857
  25. https://www.drdobbs.com/cloud
  26. https://www.drdobbs.com/mobile
  27. https://www.drdobbs.com/parallel
  28. https://www.drdobbs.com/windows
  29. https://www.drdobbs.com/jvm
  30. https://www.drdobbs.com/cpp
  31. https://www.drdobbs.com/tools
  32. https://www.drdobbs.com/architecture-and-design
  33. https://www.drdobbs.com/testing
  34. https://www.drdobbs.com/web-development
  35. https://www.drdobbs.com/joltawards
  36. https://www.drdobbs.com/cloud
  37. https://www.drdobbs.com/mobile
  38. https://www.drdobbs.com/parallel
  39. https://www.drdobbs.com/windows
  40. https://www.drdobbs.com/jvm
  41. https://www.drdobbs.com/cpp
  42. https://www.drdobbs.com/tools
  43. https://www.drdobbs.com/architecture-and-design
  44. https://www.drdobbs.com/testing
  45. https://www.drdobbs.com/web-development
  46. https://www.drdobbs.com/joltawards
  47. https://www.drdobbs.com/rss
  48. https://twitter.com/share
  49. javascript:emailLauncher('/email?articleUrl=','/80386-protected-mode-initialization/184408010')
  50. https://www.drdobbs.com/article/print?articleId=184408010&siteSectionName=
  51. https://www.drdobbs.com/80386-protected-mode-initialization/184408010
  52. https://www.drdobbs.com/80386-protected-mode-initialization/8810c.htm#01ca_000b
  53. https://www.drdobbs.com/80386-protected-mode-initialization/8810c.htm#01ca_000b
  54. https://www.drdobbs.com/80386-protected-mode-initialization/8810c.htm#01ca_000b
  55. https://www.drdobbs.com/80386-protected-mode-initialization/184408010#toc-news
  56. https://www.drdobbs.com/80386-protected-mode-initialization/184408010#toc-commentary
  57. https://www.drdobbs.com/cloud/tools-to-build-payment-enabled-mobile-ap/240169446?cid=SBX_ddj_related_news_default_80386_protected_mode_initialization&itc=SBX_ddj_related_news_default_80386_protected_mode_initialization
  58. https://www.drdobbs.com/tools/parasoft-devtest-shifts-to-continuous/240169403?cid=SBX_ddj_related_news_default_80386_protected_mode_initialization&itc=SBX_ddj_related_news_default_80386_protected_mode_initialization
  59. https://www.drdobbs.com/database/a-datacenter-operating-system-for-data-d/240169391?cid=SBX_ddj_related_news_default_80386_protected_mode_initialization&itc=SBX_ddj_related_news_default_80386_protected_mode_initialization
  60. https://www.drdobbs.com/tools/xmind-6-public-beta-now-available/240169385?cid=SBX_ddj_related_news_default_80386_protected_mode_initialization&itc=SBX_ddj_related_news_default_80386_protected_mode_initialization
  61. https://www.drdobbs.com/news?cid=SBX_ddj_related_news_default_80386_protected_mode_initialization&itc=SBX_ddj_related_news_default_80386_protected_mode_initialization
  62. https://www.drdobbs.com/cpp/biicode-20-is-buzzing/240169447?cid=SBX_ddj_related_commentary_default_80386_protected_mode_initialization&itc=SBX_ddj_related_commentary_default_80386_protected_mode_initialization
  63. https://www.drdobbs.com/embedded-systems/things-that-go-boom/240169445?cid=SBX_ddj_related_commentary_default_80386_protected_mode_initialization&itc=SBX_ddj_related_commentary_default_80386_protected_mode_initialization
  64. https://www.drdobbs.com/tools/application-intelligence-for-advanced-du/240169443?cid=SBX_ddj_related_commentary_default_80386_protected_mode_initialization&itc=SBX_ddj_related_commentary_default_80386_protected_mode_initialization
  65. https://www.drdobbs.com/tools/devart-dbforge-studio-for-mysql-with-phr/240169414?cid=SBX_ddj_related_commentary_default_80386_protected_mode_initialization&itc=SBX_ddj_related_commentary_default_80386_protected_mode_initialization
  66. https://www.drdobbs.com/articles?cid=SBX_ddj_related_commentary_default_80386_protected_mode_initialization&itc=SBX_ddj_related_commentary_default_80386_protected_mode_initialization
  67. https://www.drdobbs.com/80386-protected-mode-initialization/184408010#toc-slideshow
  68. https://www.drdobbs.com/80386-protected-mode-initialization/184408010#toc-video
  69. https://www.drdobbs.com/joltawards/jolt-awards-the-best-books/240169070?cid=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization&itc=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization
  70. https://www.drdobbs.com/architecture-and-design/developer-reading-list/240168591?cid=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization&itc=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization
  71. https://www.drdobbs.com/cpp/the-most-underused-compiler-switches-in/240166599?cid=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization&itc=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization
  72. https://www.drdobbs.com/joltawards/jolt-awards-coding-tools/240165725?cid=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization&itc=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization
  73. https://www.drdobbs.com/slideshows?cid=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization&itc=SBX_ddj_related_slideshow_default_80386_protected_mode_initialization
  74. https://www.drdobbs.com/mobile/verizon-app-challenge-winners/240166966?cid=SBX_ddj_related_video_default_80386_protected_mode_initialization&itc=SBX_ddj_related_video_default_80386_protected_mode_initialization
  75. https://www.drdobbs.com/mobile/ibm-mobile-developer-challenge/240166310?cid=SBX_ddj_related_video_default_80386_protected_mode_initialization&itc=SBX_ddj_related_video_default_80386_protected_mode_initialization
  76. https://www.drdobbs.com/architecture-and-design/researchintel-showcase/240157932?cid=SBX_ddj_related_video_default_80386_protected_mode_initialization&itc=SBX_ddj_related_video_default_80386_protected_mode_initialization
  77. https://www.drdobbs.com/architecture-and-design/connected-vehicles/240148293?cid=SBX_ddj_related_video_default_80386_protected_mode_initialization&itc=SBX_ddj_related_video_default_80386_protected_mode_initialization
  78. https://www.drdobbs.com/video/archives?cid=SBX_ddj_related_video_default_80386_protected_mode_initialization&itc=SBX_ddj_related_video_default_80386_protected_mode_initialization
  79. https://www.drdobbs.com/80386-protected-mode-initialization/184408010#toc-most-popular
  80. https://www.drdobbs.com/web-development/restful-web-services-a-tutorial/240169069?cid=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization&itc=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization
  81. https://www.drdobbs.com/jvm/lambda-expressions-in-java-8/240166764?cid=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization&itc=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization
  82. https://www.drdobbs.com/tools/developer-reading-list-the-must-have-boo/240148421?cid=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization&itc=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization
  83. https://www.drdobbs.com/jvm/an-algorithm-for-compressing-space-and-t/184406478?cid=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization&itc=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization
  84. https://www.drdobbs.com/?cid=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization&itc=SBX_ddj_related_mostpopular_default_80386_protected_mode_initialization
  85. https://www.informationweek.com/whitepaper/security-management-and-analytics/cybersecurity/maximize-the-human-potential-of-your-soc/439363?cid=SBX_ddj_well_wp_default_80386_protected_mode_initialization&itc=SBX_ddj_well_wp_default_80386_protected_mode_initialization
  86. https://www.informationweek.com/whitepaper/cybersecurity/security/real-time-endpoint-security-with-automated-incident-response/435543?cid=SBX_ddj_well_wp_default_80386_protected_mode_initialization&itc=SBX_ddj_well_wp_default_80386_protected_mode_initialization
  87. https://www.drdobbs.com/whitepaper/all/more.html?cid=SBX_ddj_well_wp_default_80386_protected_mode_initialization&itc=SBX_ddj_well_wp_default_80386_protected_mode_initialization
  88. https://www.informationweek.com/whitepaper/cybersecurity/endpoint-security/proven-success-factors-for-endpoint-security/429043?cid=SBX_ddj_well_Analytics_default_80386_protected_mode_initialization&itc=SBX_ddj_well_Analytics_default_80386_protected_mode_initialization
  89. https://www.informationweek.com/whitepaper/cybersecurity/risk-management-security/intel-471-breach-report/429143?cid=SBX_ddj_well_Analytics_default_80386_protected_mode_initialization&itc=SBX_ddj_well_Analytics_default_80386_protected_mode_initialization
  90. https://www.drdobbs.com/analytics/all/more.html?cid=SBX_ddj_well_Analytics_default_80386_protected_mode_initialization&itc=SBX_ddj_well_Analytics_default_80386_protected_mode_initialization
  91. https://informationweek.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_defa2717&ch=sbx&cid=SBX_ddj_well_Webcast_default_80386_protected_mode_initialization&itc=SBX_ddj_well_Webcast_default_80386_protected_mode_initialization&K=SBX_DDJ_WL
  92. https://interop.com/july19-event?keycode=sbx&cid=SBX_ddj_well_Webcast_default_80386_protected_mode_initialization&itc=SBX_ddj_well_Webcast_default_80386_protected_mode_initialization&K=SBX_DDJ_WL
  93. https://www.drdobbs.com/webcast/all/more.html?cid=SBX_ddj_well_Webcast_default_80386_protected_mode_initialization&itc=SBX_ddj_well_Webcast_default_80386_protected_mode_initialization
  94. https://disqus.com/dashboard/
  95. https://www.drdobbs.com/80386-protected-mode-initialization/184408010
  96. https://www.drdobbs.com/80386-protected-mode-initialization/184408010
  97. https://www.drdobbs.com/architecture-and-design/dr-dobbs-archive/240169474
  98. https://www.drdobbs.com/architecture-and-design/farewell-dr-dobbs/240169421
  99. https://www.drdobbs.com/joltawards/jolt-awards-2015-coding-tools/240169420
 100. https://www.drdobbs.com/architecture-and-design/thriving-among-the-apis/240169441
 101. https://www.drdobbs.com/web-development/the-long-death-of-project-hosting-sites/240169394
 102. https://www.drdobbs.com/80386-protected-mode-initialization/184408010
 103. https://www.drdobbs.com/80386-protected-mode-initialization/184408010
 104. https://www.drdobbs.com/web-development/restful-web-services-a-tutorial/240169069
 105. https://www.drdobbs.com/jvm/lambda-expressions-in-java-8/240166764
 106. https://www.drdobbs.com/tools/developer-reading-list-the-must-have-boo/240148421
 107. https://www.drdobbs.com/jvm/an-algorithm-for-compressing-space-and-t/184406478
 108. https://www.drdobbs.com/jvm/why-build-your-java-projects-with-gradle/240168608
 109. https://www.drdobbs.com/jvm/readwrite-properties-files-in-java/231000005
 110. https://www.drdobbs.com/jvm/coding-the-javafx-tableview/240001874
 111. https://www.drdobbs.com/jvm/easy-dom-parsing-in-java/231002580
 112. https://www.drdobbs.com/cpp/c11-uniqueptr/240002708
 113. https://www.drdobbs.com/jvm/making-http-requests-from-java/240160966
 114. https://www.drdobbs.com/digital/20141022?k=ddjtm&cid=onedit_ds_ddjtm
 115. https://www.drdobbs.com/digital/20141022?k=ddjtm&cid=onedit_ds_ddjtm
 116. https://www.drdobbs.com/digital/20141022?k=ddjtm&cid=onedit_ds_ddjtm
 117. https://www.drdobbs.com/digital/20141022?k=ddjtm&cid=onedit_ds_ddjtm
 118. https://www.drdobbs.com/80386-protected-mode-initialization/184408010#tab_live-events
 119. https://www.drdobbs.com/80386-protected-mode-initialization/184408010#tab_webcasts
 120. https://www.interop.com/july19-event?keycode=sbx&cid=SBX_ddj_fture_LiveEvent_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_LiveEvent_default_80386_protected_mode_initialization
 121. https://informationweek.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&qf=w_defa2717&ch=sbx&cid=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&K=SBX_DDJ_FT
 122. https://interop.com/july19-event?keycode=sbx&cid=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&K=SBX_DDJ_FT
 123. https://interop.com/july19-event?keycode=sbx&cid=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&K=SBX_DDJ_FT
 124. https://networkcomputing.tradepub.com/c/pubRD.mpl?secure=1&sr=pp&_t=pp:&pc=w_defa2542&ch=sbx&cid=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&K=SBX_DDJ_FT
 125. https://webinar.informationweek.com/5876?keycode=sbx&cid=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization&K=SBX_DDJ_FT
 126. https://www.drdobbs.com/webcast/all/more.html?cid=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization?itc=SBX_ddj_fture_Webcast_default_80386_protected_mode_initialization
 127. https://www.drdobbs.com/80386-protected-mode-initialization/184408010
 128. https://www.informationweek.com/whitepaper/operating-systems/application-acceleration/ai-driven-testing-bridging-the-software-automation-gap/436523?keycode=sbx&cid=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization
 129. https://www.informationweek.com/whitepaper/executive-insights-and-innovation/it-strategy/2021-digital-transformation-report/428703?cid=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization
 130. https://www.informationweek.com/whitepaper/cybersecurity/risk-management-security/increased-cooperation-between-access-brokers,-ransomware-operators-reviewed/429153?cid=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization
 131. https://www.informationweek.com/whitepaper/cybersecurity/cloud-security/sans-2021-cloud-security-survey/429583?cid=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization
 132. https://www.informationweek.com/whitepaper/network-and-perimeter-security/cloud-infrastructure/the-infoblox-q1-2021-cyberthreat-intelligence-report/429503?cid=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization
 133. https://www.drdobbs.com/analytics/all/more.html?cid=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization?itc=SBX_ddj_fture_Analytics_default_80386_protected_mode_initialization
 134. https://www.drdobbs.com/80386-protected-mode-initialization/184408010
 135. https://www.informationweek.com/whitepaper/security-management-and-analytics/cybersecurity/maximize-the-human-potential-of-your-soc/439363?cid=SBX_ddj_fture_wp_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_wp_default_80386_protected_mode_initialization
 136. https://www.informationweek.com/whitepaper/security-management-and-analytics/cybersecurity/modernize-your-security-operations-with-human-machine-intelligence/438993?cid=SBX_ddj_fture_wp_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_wp_default_80386_protected_mode_initialization
 137. https://www.informationweek.com/whitepaper/security-management-and-analytics/cybersecurity/ai-in-cybersecurity-using-artificial-intelligence-to-mitigate-emerging-security-risks/438983?cid=SBX_ddj_fture_wp_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_wp_default_80386_protected_mode_initialization
 138. https://www.informationweek.com/whitepaper/cybersecurity/security/avoid-unplanned-downtime-from-ransomware/435553?cid=SBX_ddj_fture_wp_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_wp_default_80386_protected_mode_initialization
 139. https://www.informationweek.com/whitepaper/cybersecurity/security/real-time-endpoint-security-with-automated-incident-response/435543?cid=SBX_ddj_fture_wp_default_80386_protected_mode_initialization&itc=SBX_ddj_fture_wp_default_80386_protected_mode_initialization
 140. https://www.drdobbs.com/whitepaper/all/more.html?cid=SBX_ddj_fture_wp_default_80386_protected_mode_initialization?itc=SBX_ddj_fture_wp_default_80386_protected_mode_initialization
 141. https://www.drdobbs.com/digitaledition/
 142. https://www.drdobbs.com/digital/20141022
 143. https://dc.ubm-us.com/i/350594
 144. https://dc.ubm-us.com/i/300036/
 145. https://dc.ubm-us.com/i/245989
 146. https://www.drdobbs.com/digital/20140813
 147. https://www.drdobbs.com/digital/20140626
 148. https://www.drdobbs.com/digital/20140514/
 149. https://www.drdobbs.com/digital/012914/
 150. https://www.drdobbs.com/digital/022614
 151. https://www.drdobbs.com/digital/121712/?cid=ddj_premium_January2013
 152. https://www.drdobbs.com/digital/012213/?cid=ddj_premium_February2013
 153. https://www.drdobbs.com/digital/022513/?cid=ddj_premium_March2013
 154. https://www.drdobbs.com/digital/032513/?cid=ddj_premium_April2013
 155. https://www.drdobbs.com/digital/042213/?cid=ddj_premium_May2013
 156. https://www.drdobbs.com/digital/052013/?cid=ddj_premium_June2013
 157. https://www.drdobbs.com/digital/062413/?cid=ddj_premium_July2013
 158. https://www.drdobbs.com/digital/072213/?cid=ddj_premium_August2013
 159. https://www.drdobbs.com/digital/082613
 160. https://www.drdobbs.com/digital/092313/
 161. https://www.drdobbs.com/digital/102113
 162. https://www.drdobbs.com/digital/111113?k=ddjtm&cid=onedit_ds_ddjtm
 163. https://www.drdobbs.com/digital/121911/?cid=ddj_premium_January2012
 164. https://www.drdobbs.com/digital/011912/?cid=ddj_premium_February2012
 165. https://www.drdobbs.com/digital/021912/?cid=ddj_premium_March2012
 166. https://www.drdobbs.com/digital/031912/?cid=ddj_premium_April2012
 167. https://www.drdobbs.com/digital/042312/?cid=ddj_premium_May2012
 168. https://www.drdobbs.com/digital/052112/?cid=ddj_premium_June2012
 169. https://www.drdobbs.com/digital/061812/?cid=ddj_premium_July2012
 170. https://www.drdobbs.com/digital/072312/?cid=ddj_premium_August2012
 171. https://www.drdobbs.com/digital/082012/?cid=ddj_premium_September2012
 172. https://www.drdobbs.com/digital/092412/?cid=ddj_premium_October2012
 173. https://www.drdobbs.com/digital/102212/?cid=ddj_premium_November2012
 174. https://www.drdobbs.com/digital/111912/?cid=ddj_premium_December2012
 175. https://www.googletagmanager.com/ns.html?id=GTM-MMJM4JC
 176. https://www.informationweek.com/
 177. https://www.interop.com/
 178. https://www.darkreading.com/
 179. https://www.datacenterknowledge.com/
 180. https://www.networkcomputing.com/
 181. https://www.itprotoday.com/
 182. https://informationweek.com/about-us/d/d-id/705542
 183. https://informationweek.com/document.asp?doc_id=705542
 184. https://informationweek.com/document.asp?doc_id=1334603
 185. https://info.wrightsmedia.com/informa-licensing-reprints-request
 186. https://tech.informa.com/
 187. https://tech.informa.com/cookie-policy
 188. https://privacyportal-eu-cdn.onetrust.com/dsarwebform/c1f53e84-9f05-4169-a854-85052b63c50b/5f26b553-52cc-4973-a761-295d5634a6b6.html
 189. https://tech.informa.com/privacy-policy
 190. https://tech.informa.com/terms-and-conditions

   Hidden links:
 192. https://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=Dr.Dobbs&source=tbx-250&lng=en-US&s=stumbleupon&url=https://www.drdobbs.com/80386-protected-mode-initialization/184408010&title=80386%20Protected%20Mode%20Initialization&ate=AT-Dr.Dobbs/-/fs-0/4d4fc3809f4d8545/1&sms_ss=1&at_xt=1&CXNID=2000001.5215456080540439074NXC&pre=http%3A%2F%2Fwww.drdobbs.com%2F&tt=0
 193. https://www.drdobbs.com/80386-protected-mode-initialization/184408010#disqus_thread
 194. https://www.drdobbs.com/
 195. https://www.drdobbs.com/
 196. https://www.drdobbs.com/
 197. https://www.drdobbs.com/
 198. https://www.facebook.com/informationweek
 199. https://twitter.com/InformationWeek
 200. https://www.linkedin.com/company/3930/admin/
 201. https://www.drdobbs.com/rss/
 202. https://www.omniture.com/