For in-depth information about the encoding formats I can highly recommend http://sandpile.org. The Intel documents obviously have all that information as well, but I find sandpile.org handy as a reference, especially the mod R/M byte and SIB byte tables.
I think real mode 16-bit DOS development is extremely outdated. In my opinion it's far more educational to work on an actual modern platform, so you understand how real world applications work these days. One way to do this is to use Visual C++ Express on Windows, where you can use inline assembly (http://msdn.microsoft.com/en-us/library/4ks26t93(VS.71).aspx).