Assembly / Hardware Programming

Started by
4 comments, last by Spoonbender 18 years, 10 months ago
Greetings All, I've questioned the possibility of learning Assembly. I've been playing around with C/C++ and the .NET languages; but I feel like I don't have true controll over my applications while under the Windows environment. I would love to write an application, knowing what each function does and where it is derived from - completely on the low hardware level. I guess what I'm really asking is: what language should I learn if I desire to program actual hardware without any confusing, congested high level elementary API? Any suggestions or comments would be greatly welcomed and appreciated. Thanks.
Advertisement
We study assembly in school, on the old 8085 processor. It is a fairly straight forward language (atleast for that processor), It is fairly difficult to figure some things out, like sorting numbers and such. But none the less I'd say go learn assembly if yo want to directly program the hardware; Its a nice change from higher level prgramming languages.
If you think a high level language is confusing, you should read some books, not learn assembly, because you will probably find it just as bad, if not worse.

If you want to learn assembly just for the hell of it, then that is fine, but you will figure out very quickly why entire programs of any reasonable size are not written in it anymore.

Also, with a modern OS like WinXP you are limited in your control over the hardware anyways.

You can find lots of information for developers on intels and amd websites.
here is a link for more information than you could ever want on the p4
http://developer.intel.com/design/pentium4/manuals/253665.htm

note the 744 page Instruction set reference (only A to M at that!!!)
http://download.intel.com/design/Pentium4/manuals/25366615.pdf

I hope you find it informative, but I doubt you will find it better than a high level API.
Hi, for Windows assembly coding you might find this useful.

HTH
This is the best site I've ever seen for accessing hardware directly. If you surf around the site you will find loads of info with dealing with assembly and basic and advanced operating systems. You can even build your own from this set of information.

OSDever
OSDever: Documents Section
OSDever: Tutorials Section

g/l
If you want to know what happens on a lower level (and in the hardware), you have to write a kernel yourself. The above OSDever link is a pretty good starting point, although you can also get some great books about it.

No matter the language you use, all modern OS'es restrict your access to the hardware.

Assembly in itself won't help you much. What you're after is an understanding of how the OS controls the hardware, and for that, you essentially need to know how an OS works. (And the most interesting way of learning this, is to make one yourself :P)

This topic is closed to new replies.

Advertisement