mov eax,offset i
mov ebx,zero
next:cmp eax,pr
jne nextEl; если пробел равен элементу строки то должно перейти на следующую строку
...а сравниваются, между тем, адрес строки и адрес переменной содержащей пробел.
Должно быть как-то так:
mov eax,offset i
mov ebx,zero
next:cmp byte ptr [eax], 20h
jne nextEl
Дальше код тоже барахло.
Изучите то, как записываются разные виды адресации в вашем ассемблере. Например:
www.c-jump.com/CIS77/ASM/Addressing/lecture.html#R...