Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler

Выпуск № 145
от 25.05.2005, 07:00

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 3


Вопрос № 21094: Доброго времени суток! Совсем недавно начал изучать ассемблер по архиву рассылки "Ассемблер? Это просто!". Данная рассылка является самым полезным источником информации по ассемблеру из всех, котороые я встречал. ...но рассматривается п...

Вопрос № 21094
Доброго времени суток!
Совсем недавно начал изучать ассемблер по архиву рассылки "Ассемблер? Это просто!". Данная рассылка является самым полезным источником информации по ассемблеру из всех, котороые я встречал. ...но рассматривается почему-то в основном вывод сообщений на экран... а ввод строк пользователем игнорируется... Пытался поискать дополнительную информацию, но пишут в основном "для ввода строки пользователем используйте функцию 0Ah прерывания int 21h"... Не могли бы вы описать эту функцию или посоветовать хороший источник информации по этой и другим функциям. Прилагаю листинги двух программ (попытки осуществить запрос пользователю по вводу строк). В чем мои ошибки? Адреса для обратной связи
axel@art.vvsu.ru
el_verdugo@mail.ru

Приложение:

Отправлен: 20.05.2005, 06:59
Вопрос задал: el_verdugo (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: DSota
Здравствуйте, el_verdugo!
Для ввода строки еще имеют значения параметров из строки, адрес который был
введен. То есть формат строки Buf_Name такой:
1-й байт - максимально возвожная длина строки для ввода
2-й байт - при вводе не имеет значения, при возврате в ней содержиться длина
введенной строки
3-й и далее байты - данные самой строки
т.е. структура такая
Buf db Maxlen,StrLen,MaxLen+1 dup (?)
Программы можно исправить так как ниже:

Приложение:

Ответ отправил: DSota (статус: Студент)
Отправлен: 20.05.2005, 09:20
Оценка за ответ: 4

Отвечает: Котиев Зураб
Здравствуйте, el_verdugo!
скачай отсюда Techhelp
http://www.osrc.info/download.php?view.24
или найди в сети превод сего Питера Абеля
Ответ отправил: Котиев Зураб (статус: 4-ый класс)
Отправлен: 20.05.2005, 11:08
Оценка за ответ: 3

Отвечает: Стас
Здравствуйте, el_verdugo!
Для использования Func 0ah 21 прерывания нужно предварительно приготовить буфер:
первый(нулевой) байт - максимальное количество символов которые можно ввести,
во втором байте - функция вернёт количество введенных символов, а вот собственно с третьего байта и начинается буффер (данные).
А может лучше свою процекдуру забабахать? Надо бы там добавить обработку управляющих клавиш: BackSpace, стрелки, Delete...
Если раскоментируешь команды с регистром CX - будет проверка на длину вводимой строки.
См. пример. Чтобы вернуть вариант с Func 0ah 21 прерывания закоментируй все "отодвинутые" строки, раскоментируй остальные. Вообщем разберешься.

Приложение:

Ответ отправил: Стас (статус: Практикант)
Отправлен: 21.05.2005, 00:32
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.faq
Отписаться
Вспомнить пароль

В избранное