First you write a disassembler, then an interpreter for 16 bit mode. At that point you can already almost run FreeDOS.<p>Here are some resources:<p><a href="http:&#x2F;&#x2F;css.csail.mit.edu&#x2F;6.858&#x2F;2014&#x2F;readings&#x2F;i386&#x2F;toc.htm" rel="nofollow">http:&#x2F;&#x2F;css.csail.mit.edu&#x2F;6.858&#x2F;2014&#x2F;readings&#x2F;i386&#x2F;toc.htm</a><p>The official intel manuals<p><a href="http:&#x2F;&#x2F;sandpile.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;sandpile.org&#x2F;</a><p><a href="http:&#x2F;&#x2F;ref.x86asm.net&#x2F;geek.html" rel="nofollow">http:&#x2F;&#x2F;ref.x86asm.net&#x2F;geek.html</a><p><a href="http:&#x2F;&#x2F;stanislavs.org&#x2F;helppc&#x2F;idx_hardware.html" rel="nofollow">http:&#x2F;&#x2F;stanislavs.org&#x2F;helppc&#x2F;idx_hardware.html</a><p><a href="http:&#x2F;&#x2F;www.ctyme.com&#x2F;intr&#x2F;int.htm" rel="nofollow">http:&#x2F;&#x2F;www.ctyme.com&#x2F;intr&#x2F;int.htm</a><p><a href="http:&#x2F;&#x2F;wiki.osdev.org&#x2F;Main_Page" rel="nofollow">http:&#x2F;&#x2F;wiki.osdev.org&#x2F;Main_Page</a>