Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция 0АН, ДОС(int 21h) 
:(
    Опции темы
HellanD
Дата 9.7.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 443
Регистрация: 16.5.2006
Где: Киев

Репутация: нет
Всего: 2



Поясните плиз принцип работы данной функции! Особенно не ясно как она заполняет структуру данных если заполняет!
Огромное спасибо!!! 


--------------------
Мой сайт на django
Japanese Innovations
PM ICQ   Вверх
Exekutor
Дата 9.7.2006, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

Репутация: нет
Всего: 4



Функция 0Ah - ввод строки символов в некий буфер специального формата. Если символы с клавы не поступают, то функция ждет их появления. Конец ввода это нажатие клавиши Enter. Формат буфера:
  •  Первый байт буфера содержит кол-во введенных символов с учетом символа 0Dh (Enter)
  • Второй байт тоже самое, только без 0Dh
  • С третьего байта начинается строка введенных символов с завершающим ее 0Dh, максимальное кол-во символов - 254.

Добавлено @ 16:28 
Да, буфер ввода, для данной функции лучше оформлять в виде структуры:
Код

buf            struc
len_buf      db       11        ;длина buf
len_in        db        0         ;Действительная длинна введенной строки(без учета 0Dh)
buf_in        11   dup(20h) ;Буфер для ввода, с учетом 0Dh
ENDS


так вот при вызове этой функции в регистр DX нужно поместить адрес начала данной структуры. Поскольку, все ее поля идут в памяти последовательно, то она как раз и соответствует требуемому формату smile  


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
Akina
Дата 10.7.2006, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Неверно.

Первый байт буфера содержит максимально допустимое ко вводу число символов и это значение заполняется  ПЕРЕД вызовом функции. При попытке ввести больше будет генерироваться писк динамика, а символ вводиться не будет. Есссно длина буфера должна быть не менее того что в первом байте + 3. Во втором байте возвращается количество реально введенных символов без завершающего Enter, а далее содержатся введенные символы, включая Enter. Если буфер был заполнен не полностью, символы в хвосте не определены. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Exekutor
Дата 10.7.2006, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 1.11.2005
Где: Казахстан. Костан ай

Репутация: нет
Всего: 4



Хм... А я то думаю, как то странно у меня первые два пункта выглядят... Спасибо за поправку smile  


--------------------
[color=blue][size=2]En taro addun, ma sol larinas[/size][/color]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.1522 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.