I have always found that compiling the shader with FXC.exe is a useful learning tool. This command line tool requires you to tell it the file and the function you are compiling, along with the shader type and target model. You can create an html output file, which gives you lots of information about the shader, its input resources, and the shader's input and output signatures.
That will tell you about the shader, but you can also programmatically access the same data through the reflection interfaces. There is examples in my engine (linked in my signature below) about how to use the reflection interface, so feel free to take a look and borrow code as needed.
I just wanted to say thanks for mentioning this! I didn't know such a feature existed within the fxc tool. I had so many questions about the output of shaders and I just answered them all myself (was going to write a long question on gamedev.net).
Goes to show it's sometimes quicker testing things out yourself than asking.
Edit: For others who don't know what I am talking about, it's the /Fc command in fxc.exe.