You'll need to learn assembly, if you want get to the raw hardware level of programming. Assembly is easily integrated into most C compilers.
Truthfully, I think you have much more to learn about general programming and the realm of the C language, before you aim towards hardware. As well, it also depends on what you mean by "hardware programming", you may want to clarify that term.
MosaicFuneral
Posting Virtuoso
1,691 posts since Nov 2008
Reputation Points: 888
Solved Threads: 116