Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Assembler (http://forum.oszone.net/showthread.php?t=30397)

Guest 08-11-2002 18:36 208470

Всем привет, кто-нибудь знает как написать эту рограмму на Assemblere. Мучаюсь уже несколько дней и ничего не получается.Помогите кто может, заранее спасибо.
Написать программу формирования сжатой строки символов. Сжатие заключается в удалении пробелов из исходной строки при просмотре её слева направо.

Dexter 24-11-2002 14:13 208471

Перешли полное содержание задачи попробую помочь
:)

BSurin 18-07-2003 16:39 208472

Можно так. Если что не ясно, то пиши 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


Время: 15:44.

Время: 15:44.
© OSzone.net 2001-