Можно так. Если что не ясно, то пиши
bsurin@mail.ru
.model tiny
.code
org 100h
start:
; вывод исходной строки
lea dx, mes
mov ah, 09
int 21h
; сжатие
cld; флаг направления - просмотр слева направо
mov si, offset mes ; ES:SI - начало строки
push si
pop di
@@1:
lodsb ; загрузить в AL символиз DS:SI
cmp al, '$'; это символ конца строки ?
je @exit; "ДА" - выход
cmp al, ' '; это пробел ?
je @@1; "ДА" - перейти к следующему
stosb; записать по адресу ES:DI
jmp@@1; следующий символ
@exit:
stosb; записать символ конца строки
; для ясности перейдем на новую строку
; с помощью ф-ии ДОС
mov ah, 2
mov dl, 0Dh; переход в начало строки
int 21h
mov dl, 0Ah; переход на след.строку
int 21h
;вывод сжатой
lea dx, mes
mov ah, 9
int 21h
ret
mes db 'Это строка для сжатия$'
end start