No improvement over Henrik's version except about half the code space

Code:
;Result = (Nibble1 * 4096) + (Nibble2*256) + (Nibble3 * 16) + Nibble4

Result.highbyte =(Nibble1<<4)+Nibble2
Result.LowByte =(Nibble3<<4)+Nibble4