index : archi486 | |
Archlinux32 i486 tools | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | floppy/doc/www.drdobbs.com_80386-protected-mode-initialization_184408010.txt | 916 |
diff --git a/floppy/doc/www.drdobbs.com_80386-protected-mode-initialization_184408010.txt b/floppy/doc/www.drdobbs.com_80386-protected-mode-initialization_184408010.txt new file mode 100644 index 0000000..d0cf894 --- /dev/null +++ b/floppy/doc/www.drdobbs.com_80386-protected-mode-initialization_184408010.txt @@ -0,0 +1,916 @@ + #[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] +<a name="01ca_000c"> +_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. + + <br> Defines a single line break + <hr> Defines a horizontal line + +Matching tags + + These require an ending tag - e.g. <i>italic text</i> + + <a> Defines an anchor + <b> Defines bold text + <big> Defines big text + <blockquote> Defines a long quotation + <caption> Defines a table caption + <cite> Defines a citation + <code> Defines computer code text + <em> Defines emphasized text + <fieldset> Defines a border around elements in a form + <h1> This is heading 1 + <h2> This is heading 2 + <h3> This is heading 3 + <h4> This is heading 4 + <h5> This is heading 5 + <h6> This is heading 6 + <i> Defines italic text + <p> Defines a paragraph + <pre> Defines preformatted text + <q> Defines a short quotation + <samp> Defines sample computer code text + <small> Defines small text + <span> Defines a section in a document + <s> Defines strikethrough text + <strike> Defines strikethrough text + <strong> Defines strong text + <sub> Defines subscripted text + <sup> Defines superscripted text + <u> 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/ |