Bonjour.

L'explication est toute simple :
'0' est un octet ( BYTE en anglais ), et non un mot ( WORD ).

Il faut donc écrire : cmp BYTE PTR [bp+4], '0'
et : cmp BYTE PTR [bp+4], '9'