Talk:GDT Tutorial

From OSDev.wiki
Revision as of 05:09, 13 June 2012 by osdev>Jbemmel (Created page with "=== Bit shifting error in second code sample === <code lang="C"> // Create the high 32 bit segment descriptor = limit & 0x000F0000; descriptor |= (flag << 8) &...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Bit shifting error in second code sample

 // Create the high 32 bit segment
 descriptor  =  limit       & 0x000F0000;
 descriptor |= (flag <<  8) & 0x00F0FF00;
 descriptor |= (base >> 16) & 0xFF0000FF;

At the last line, the upper 8 bits will always be 0. What is the proper shifting?