Unless you tell the disassembler that your code is 16-bit (or 32-bit) and unless it can guess it somehow (e.g. based on the format of the executable, if any), the disassembler cannot know which one of the two it is.
I've taken the instruction bytes from your 16-bit disassembly and disassembled them as 32-bit code:
00000000:i33DB xor ebx,ebx
00000002:i53 push ebx
00000003:i53 push ebx
00000004:i53 push ebx
00000005:i6800000000 push 00000000
0000000A:i53 push ebx
0000000B:i53 push ebx
0000000C:i53 push ebx
0000000D:i0000 add [eax],al ; 0s between code & data
0000000F:i006874 add [eax+74],ch ; db 0,"ht"
00000012:i7470 je ; db "tp"
This is the correct 32-bit machine code generated from your assembly source and you're not disasembling it correctly. Somehow you're disassmbling it as 16-bit, which is wrong.