![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 47
|
![]()
задача такова: 1) ввод до 256 символов в организованный в памяти буфер, ограниченный длиной буфера или нажатием клавиши Enter.
2) вывод первой половины буфера с помощью постусловия. с 1 частью задачи я справилась, а вот со 2 ниче не понимаю ![]() Код:
Люди - отвратительные. Эгоистичные. Шумные. Говорят ерунду. А подумав еще немножко, понимаешь, что ты абсолютно такой же, если не хуже...
|
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 20.09.2010
Сообщений: 38
|
![]()
А зачем такие сложности с вводом? Функция 0ah делает все то же самое, только автоматически.
Постусловие - условие, истинность которого проверяется после выполнения тела цикла или процедуры. Видимо цикл DO ... WHILE имеется ввиду. |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 23.12.2008
Сообщений: 47
|
![]() Цитата:
да, именно этот вид цикла, только вроде бы в ассеблере нет DO ... WHILE
Люди - отвратительные. Эгоистичные. Шумные. Говорят ерунду. А подумав еще немножко, понимаешь, что ты абсолютно такой же, если не хуже...
|
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 20.09.2010
Сообщений: 38
|
![]()
В ассемблере есть все, только своими руками
![]() Применительно к вашей задаче: сначала делаете вывод очередного символа, а потом проверяете, половина уже выведена или еще нет. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 47
|
![]()
логику поняла, а как организовать вывод по символу из буфера?
Люди - отвратительные. Эгоистичные. Шумные. Говорят ерунду. А подумав еще немножко, понимаешь, что ты абсолютно такой же, если не хуже...
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 20.09.2010
Сообщений: 38
|
![]()
Это вторая функция DOS 21h (ah=02h). В регистр dl нужно поместить код символа.
Код:
Кстати, отсчитать половину в вашем случае можно достаточно просто - сдвинуть вправо регистр-счетчик CX. Итого получим: Код:
Цитата:
Последний раз редактировалось Stilet; 26.10.2010 в 09:17. |
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 47
|
![]() ![]() ![]() а вот про LABEL2. Код:
Люди - отвратительные. Эгоистичные. Шумные. Говорят ерунду. А подумав еще немножко, понимаешь, что ты абсолютно такой же, если не хуже...
Последний раз редактировалось Stilet; 26.10.2010 в 09:18. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 20.09.2010
Сообщений: 38
|
![]()
Там просто перед циклом сделан переход на другую строку (вывод символов 0D и 0A). Иначе информация выводилась бы поверх первой.
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 23.12.2008
Сообщений: 47
|
![]()
а не подскажите, как вывести вторую половину буфера?
![]() чтоб например, 1234, а выводило - 34
Люди - отвратительные. Эгоистичные. Шумные. Говорят ерунду. А подумав еще немножко, понимаешь, что ты абсолютно такой же, если не хуже...
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 20.09.2010
Сообщений: 38
|
![]()
Внесите небольшое изменение:
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Цикл с постусловием | vika030592 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 10.06.2010 21:08 |
Не могу разобратся с постусловием | ArteMAN | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 23.04.2010 23:28 |
Оператор цикла с постусловием (WHILE) | RUSSTUDENT | Помощь студентам | 4 | 27.01.2010 16:51 |
Цикл с постусловием | chistayastranichka | Помощь студентам | 1 | 28.05.2009 23:52 |
Цикл с постусловием. Алгоритм Евклида. | BioVis | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 31.10.2008 16:29 |