![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 29.11.2018
Сообщений: 12
|
![]()
Здравствуйте, подскажите, пожалуйста ,а как сделать проверку на пустую строку, а так же , чтобы программа выполнялась повторно?
|
![]() |
![]() |
![]() |
#12 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Цитата:
Вот только надо проверить, пишется ли в буфер нажатый Enter. Если пишется, то счётчик будет не ноль. Введите пустую строку и постмотрите в отладчике, что получилось в буфере. jmp на начало программы |
|||
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 29.11.2018
Сообщений: 12
|
![]()
Извиняюсь, а куда конкретно сделать jmp? не могу понять, мне надо чтобы я снова вводил строку с клавиатуры
Код:
|
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
а по какому условию перезапускать программу с начала?
в начало программы, там, где идёт подготовка к вызову функции ввода: Код:
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 29.11.2018
Сообщений: 12
|
![]()
Благодарю. Только возникла проблема, что ввод текста , вывод сообщения и повтор, все идет на одной строке. Как сделать чтобы строка очищалась или был переход на новую?
|
![]() |
![]() |
![]() |
#16 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
10-возврат кaретки 13-переход на новую строку проще всего добавить эти символы в конце необходимых строк: Цитата:
Код:
почитайте стать по ссылке - возможно, что многие вопросы отпадут - http://www.mini-soft.ru/document/assembler-ibm-pc-7 |
||
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 29.11.2018
Сообщений: 12
|
![]()
Спасибо
|
![]() |
![]() |
![]() |
#18 |
Пользователь
Регистрация: 29.11.2018
Сообщений: 12
|
![]()
Программа работает и все бы хорошо, только вот после нескольких вводов строк , начинает выдавать "there is a space char", даже если была строка без пробела. При пустой строке выдает то, что нужно. С чем это может быть связано?
Код:
|
![]() |
![]() |
![]() |
#19 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Ввод строки неправильно организован. Зачем там sor+2 ? И определение конца введённой строки - тоже. Конец старой строки остаётся в буфере и портит результат, если введена более короткая строка. Нужно брать из второго байта буфера реальную длину считанных данных и, например, писать символ '$' по адресу конца строки. Или, как более тупой вариант, каждый раз заново расписывать буфер символами '$'
|
![]() |
![]() |
![]() |
#20 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
в буфере остаются остатки прошлой строки. А Вы цикл крутите, пока не встретите '$'
так нельзя. Можно вставлять в нужное место строки символ '$', но в данном случае в этом нет необходимости. Ведь у нас уже есть байт, в котором находится количество символов в строке. Достаточно использовать его в качестве счётчика цикла (см. loop), чтобы получить решение: Код:
Последний раз редактировалось Serge_Bliznykov; 12.12.2018 в 22:58. Причина: исправил вызов функции ввода строки, убрал +2 (нужно lea dx, sor ) |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Код выдает ошибку при вводе 9 строки | Николай4434 | Помощь студентам | 2 | 10.10.2017 01:17 |
Предусмотреть соответствующее сообщение при делении на ноль. | deconi | JavaScript, Ajax | 2 | 09.12.2015 09:30 |
Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе? | TEIROP | Visual C++ | 4 | 08.11.2015 20:19 |
С++, подскажите что не так в коде | Dima-91 | Помощь студентам | 13 | 16.07.2015 13:11 |
проверяет пароль при открытие формы, движение рисунка Делфи 7 (есть код программы. нужен другой вариант) | программирование | Помощь студентам | 3 | 29.09.2013 15:47 |