Comment Split up the work, and don't force it (Score 1) 799
My advice, and take it as you will; if you want to "get low level with him" by using a programming language, forget it. Low level programming is something you need to understand completely in order to enjoy. I would start off with a simple and straight forward language. My personal choice would be Ruby, for it's clear syntax, and powerful features, but obviously this may not be everyone's cup of tea. Python or Java may be a good alternative. I would not suggest Perl as your first language, since it tries to cater to too many programming styles, and would be really confusing for a beginner. Whichever language you choose, use it to teach him programming fundamentals; specifically how to construct a logical framework that will solve a given problem. Do not get too deep into implementation: he is not likely to be ready to hear about memory management at this point. If you want to get creative, you can get him used to different paradigms, such functional programming with Lisp. Of course, this may be of limited use, depending on what he expects to do with these skills.
After that, if you, and he, truly have your minds set on low level languages, then I would start a bit lower with digital circuit design, with the basics of logic gates and memory. After that, at least cover the very basic CPU design. It should not be too hard to explain the basic RISC pipeline. In this stage it is critical not to delve into details, because while the concepts themselves are straightforward, covering all the formulas, special cases, rules, and caveats is enough to fill a four year engineering program. From then you can touch on assembler, and only after that would he actually be able to get the full benefit of knowing and understanding a low level language. If he does have a talent for it, then I strongly recommend the former method to get him familiar with the basic ideas, then the latter method to teach him how those basic ideas tie into existing systems.
Further, if you do try something like that, I would take a day at the start to go over how it all will tie together in the end. Maybe even make a diagram. This will save you a lot of headaches in the future, since you will be able to redirect all the "Why are we doing this again?" questions.
If he has the patience for it, this sort of knowledge would give him an invaluable step up on his classmates, so I do agree that it would be time well spent.