Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
You sure can push a BYTE value onto the stack as long as BIT#7 of it is not set so in other words, you can push an unsigned value and not a signed. However, when you push a BYTE value, the stack pointer will be decremented 4 bytes (like a DWORD) and Byte2, 3 and 4 of the DWORD will be set to zero. The problem is when you try to POP a byte value when you do this: