title: How do you directly interface with hardware from Assembly Language?
body: <p>So, I decided to learn Assembly Language for the 80x86 this summer. I picked up four books on assembly. So far I've read the first two and I'm half way though the third one and I think I understand everything that has been presented. I've written a few Hello World programs as well as other little exercises from the book and I feel very comfortable with the language.
  However, there is one thing that none of the books have addressed so far and it's the thing that I'm most interested in. That is, How do you address the hardware directly from assembly language? So far in the books the author has used system calls, jumps to specific functions in memory, and interrupts, but these methods rely on software already present in the system.</p>
  
  <p>I'm writing my programs using NASM and loading them into an old Pentium I computer. I'm not using any OS right now, just the BIOS. I guess what I'm trying to do is write my little OS that is autonomous and does not rely on the BIOS (except for initial boot). Can anyone help me?</p>