Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2009, 21:48   #11
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

это счетчик для кол-вы выводимых пробелов. добавьте такую переменную.
А вставить код нужно после int 21h.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Старый 03.12.2009, 22:14   #12
Sonyalex90
Пользователь
 
Регистрация: 20.09.2009
Сообщений: 23
По умолчанию

data segment
NL db 0Ah, 0Dh, '$'
Buf DB 255, 0, 256 DUP (0) ;
data ends
code segment ;отмечаем начало сегмента кодов
assume cs:code, dsata
START:
mov ax,data ;копируем адрес
mov ds,ax ;сегмента данных
mov dx,offset Buf ;считываем строку с клавиатуры
mov ah,0Ah
int 21h
xor cx,cx
mov al,[Buf+1] ;если считано 0 байт, то выход из
mov cl,al ;задаем количество повторений (длина строки)
test al,al ;программы
jz Exit
mov ah,09h
mov dx,offset NL ; перейти на следующую строку
int 21h
mov si,offset Buf+2
Cycle:
mov dl,[si] ;считать символ
cmp dl,' ' ;сравнить с пробелом
jne Print ;если не пробел - вывести
mov ah,09h ;если пробел - перевод каретки
mov dx,offset NL ;адрес строки с переводом каретки
int 21h ;вызов DOS
push cx
mov cx,2
mov dl,' '
mov ah,2
spaces:
int 21h
loop spaces
pop cx
jmp Space ;пропустить код вывода - пробел не выводим

Print:
mov ah,02h ;выбор функции 2
int 21h ;вызов DOS

Space:
inc si ;перейти к следующему символу
loop Cycle
Exit:
mov AX,4C00h ;выход
int 21h ;из программы
code ends
END START

как вы сказали я добавил. почему то происходит добавление пробелов только один раз. т.е. если ввести два слова, то все нормально, а если несколько то не то
Sonyalex90 вне форума Ответить с цитированием
Старый 03.12.2009, 22:46   #13
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

ну так как я написал и как вы ?

добавьте переменную count в программу.
и пользуйтесь пожалуста тегом кода. читать не очень приятно сплошной текст.
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввод/вывод строк anGeee Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 04.09.2009 21:58
вывод большего кол-ва строк Alternavi SQL, базы данных 2 03.07.2009 15:43
вывод массива строк посимвольно faraner Общие вопросы C/C++ 1 25.05.2009 22:51
Ввод/Вывод данных.Лабораторная работа. kry Общие вопросы C/C++ 1 03.03.2009 11:03
вывод GridView строк Shouldercannon Общие вопросы Delphi 0 25.02.2009 12:07