We have promised to open source all of Android. It just takes time to do it all, and do it right.
Some people get a little impatient and Michael Pavone is one of those people:
I’ve started another little reverse engineering project. Google hasn’t released any documentation on their new VM so I decided to get some the hard way. Well, hard is relative here. A decompiled Java class is a bit easier to read than a disassembled 68K binary. Anyway, I’ve managed to write some documentation on the dex file format used by the VM. I hope to have some documentation on the actual instruction set used by the VM in a few days, but for now I can whet your appetite with this: The instructions are variable length from 1 to 5 16-bit words. The VM appears to support 256 registers, but most instructions can only access the first 16. Instructions can take anywhere from 0 to 4 operands (though most take 2 or less). The actual opcode is stored in the first (least significant) byte.
He then goes on to give his view of the Dex file format.