Ввод последовательности символов |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
Ввод последовательности символов |
18192123 |
Сообщение
#1
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
Мною ранее была затронута тема "Сортировка в соответствии с ASCII кодом". Хотелось бы улучшить программку, добавив возможность ввода произвольной последовательности символов. Покажите пожалуста, как это реализовывается средствами языка Assembler.
|
andriano |
Сообщение
#2
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
В языке Ассемблера нет средств для ввода символов. Надо пользоваться средствами BIOS.
|
18192123 |
Сообщение
#3
|
Профи Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: 2 |
|
spill |
Сообщение
#4
|
Пионер Группа: Пользователи Сообщений: 58 Пол: Мужской Реальное имя: Андрей Репутация: 2 |
Функция 01h 21h прерывания
Читать (ожидать) символ со стандартного входного устройства. Результат помещает в AL Также можно по-другому: Функция 00h 16h прерывания (Выход - AL - ASCII код, AH - Сканкод или расширенный код ASCII) Еще можно вводить строку таким образом. Через прерывание 21h, Функция 0Ah: Вход: AH = 0Ah DS:DX -> Адрес входного буфера (см. ниже) Выход: Нет. Буфер содержит ввод, заканчивающийся символом CR (ASCII 0Dh) При входе буфер по адресу DS:DX должен быть оформлен так: MAX ? ? ? ? ? ? ... MAX - Максимально допустимая длина ввода (от 1 до 254) При выходе буфер заполнен данными следующим образом: max len T E X T 0Dh LEN - Действительная длина строки (без завершающего CR) Символы считываются до тех пор, пока не будет введен возврат каретки CR (нажатие ENTER). Если достигут предел ввода MAX, то включается консольный звонок для каждого очередного символа. |
Текстовая версия | 23.12.2024 16:41 |