top of page
Search
Writer's pictureFox Forge

Intel x86: 16 bit OS Boot Loader | Assembly

Updated: Apr 25

As part of a systems programming module our task was to create a type of hex editor within a 16 bit OS boot loader for the Intel x86 chips. The idea would be to read disk sectors and their contents in a fashion which would display hex and ASCII similar to the typical HexEdit.

Being a 16 bit OS, the entire project was done in assembly language and really got me to think about extensive details down to every byte.


With only a certain amount of registers available to use, assembly seemed quite strange at first. But once you get used to the idea of using the stack to save registers, everything becomes relatively simple.


How does it run?


The project uses Gygwin64 to create the binaries needed with the disc image. This then allows you to run the OS in BOCHS emulator. The demo I have below shows how I set this up to run the project.



This was later extended into a 32bit OS boot loader, however, this meant removing most of the assembler work, as I would be working in low level C programming too. I have wrote another blog on that too, but felt the need to break down my development cycle into 2 parts. The complete code for this is also on my github page if you are interested so see how everything works!


4 views0 comments

Recent Posts

See All

Comments


bottom of page