Author Topic: How to translate Intel documentation into assembly  (Read 9164 times)

Offline isit

  • Jr. Member
  • *
  • Posts: 8
How to translate Intel documentation into assembly
« on: December 07, 2016, 02:21:59 AM »
http://www.intel.com/content/www/us/en/chipsets/8-series-chipset-pch-datasheet.html


www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-instruction-set-reference-manual-325383.pdf

based on these two documents, how would I write a simple hello world to my embedded Digital Displayport. or to the svga, or both!

And how would I load and execute a file from my hard drive.
and how would I interface with all of the chips like the network card etcetera even send a sine wave to my audio card. The more examples the merrier. I am writing or at least in the process of learning how to write Operating systems.

Any help would be greatly appreciated.

Offline soulvomit

  • Jr. Member
  • *
  • Posts: 31
Re: How to translate Intel documentation into assembly
« Reply #1 on: December 07, 2016, 02:36:28 PM »
First of all, forgive me for sounding harsh.

You are 1) asking the wrong questions and 2) asking them in the wrong place. None of your questions are NASM specific. x86 Operating system programming and x86 embedded programming can be done in multiple languages/syntax's.

The first steps you must take is to learn about the BIOS, and how to execute a real mode bootloader. From here it gets much more complex if you want a true 32-bit protected mode operation system. And the complexity increases if you want make a 64-bit long mode operating system.

Making a real mode bootloader is fairly easy (compared to what you face next), if you've got the "know how". I'll help you by pointing you the this tutorial http://mikeos.sourceforge.net/write-your-own-os.html It demonstrates how to create a simple "hello world" real mode bootloader with NASM under Linux. From here you might want to access a file system, but I warn you, nothing about this is easy! Your next steps should focus on going from real mode to protected mode. Protected mode is MUCH more complex in the way memory is handled. Next step would probably be to understand the framebuffer and how to manipulate it in the lowest bit mode (console mode), and from here how to switch VGA modes. For all of this you will probably want to visit http://wiki.osdev.org/Main_Page They have some good tutorials and resources to learn most of the above. Once you have mastered all of this (probably years and years from now), you can begin to ask questions like; how do I interface with my audio card, network adapter, graphics card etc.?

There are so many things to learn here, and I've probably forgotten to mention a lot of important stuff. It has been a while since I've dabbled in OS programming. But take it from someone who used a couple of years learning about this stuff; only the most hardcore "hobbyists" will ever get a remotely functional operating system up and running, and even fewer will get to a stage, where their OS can interface with complex hardware, such as the graphics card. If you just want to play around with hardware, getting into driver programming is probably a better bet, but still much more complex then your typical user mode programming.

Hope this helps a bit.
« Last Edit: December 07, 2016, 02:40:40 PM by soulvomit »