title: Advanced assembly guide for writing a bootloader
body: <p>For a computer architecture project I want to write some bootable code to do something simple (I thought of a snake game, if that's not too complicated). I thought that writing a small bootloader to pass control to a C program shouldn't be too hard, but I can't find any accurate info.</p>
  
  <p>I'm looking for some advanced guide for x86 assembly properly describing protected mode (I still can't tell if I need to switch to it, my first instinct is that I don't), how a computer boots, reading from the keyboard and printing to screen. </p>
  
  <p>I can write in assembly and pass it gcc to write small programs, I just need the booting and interfacing information. Any info is appreciated, including books.</p>