IMO the best would be to shr (shift right bits) x8 and use AL to get the values you need. The use of AH register is highly unrecommended by optimization manual (from Intel):
3.5.1.12 Zero-Latency MOV Instructions
In processors based on Intel microarchitecture code name Ivy Bridge, a subset of register-to-register move operations are executed in the front end (similar to zero-idioms, see Section 3.5.1.7). This conserves scheduling/execution resources in the out-of-order engine. Most forms of register-to-register. MOVZX are hence Zero-Latency for reg32, reg8 (if not AH/BH/CH/DH)
movzx esi, al ; esi = eax & 0xff
shr eax, 8 ; eax >>= 8;
movzx ecx, al
shr eax, 8
movzx ebx, al
shr eax, 8
You will have first byte in eax, 2nd in ebx, 3rd in ecx and last byte (the one that was the lowest part of eax at the origin) in esi. Also it is nasm syntax I am not familiar with masm so you may need some tweaks.