строки в dos

Тема в разделе "WASM.BEGINNERS", создана пользователем noflow, 21 мар 2007.

  1. noflow

    noflow New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2007
    Сообщения:
    2
    вот начал я изучать асм под дос, узнал что есть такая вещь, как ожидание нажатой клавиши через int 16h (mov AH, 10h), но нигде не нашел информации как сделать чтение строк с клавиатуры, именно строк. это конечно можно сделать с помошью int 16h, запихивая каждую нажатую клавишу в стек или в память до нажатия enter'a, но неужели нету более негеморного способа? подскажите
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    это сервис BIOS.

    А есть сервис DOS (int 21h):

    AH = 10 (0ah) - Выполнить буферизированный ввод с клавиатуры
    Входные параметры:
    DS:lol: X - адрес буфера для строки, в первом байте указываем размер буфера в байтах. Во второй байт дос запишет число реально прочитанных символов. Начиная с третьего байта запишет строку, признак конца строки - символ 13 (возврат каретки), для него должно быть место, но в числе реально прочитанных байт он не учитывается.

    Подробности смотри в Ralf Brown's Interrupt List
     
  3. noflow

    noflow New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2007
    Сообщения:
    2
    спасибо
     
  4. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    <AH = 10 (0ah) - Выполнить буферизированный ввод с клавиатуры>

    Между прочим именно этот сервис постоянно куртится в command.com. Так што всё верно.