The hazards of assembly code, Peter
You have defined variables in global/static memory space, which are always referenced by the ebx register
The cure is to put this into a procedure and use local variables, which are referenced by ebp.
function f()
dword a=256
byte c1,c2
push ebx
lea edi,a
mov bl,[edi]
mov c1,bl
mov bh,[edi+1]
mov c2,bh
pop ebx
print c1 '0
print c2 '1
end function