Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

bomzzz



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

никто не знает такую вешь. делаю программку 16 бит дос для перехвата нажатия клавиш. при нажатии клавиши F1 скажем должна выполниться команда DIR.

Цитата:
 
    push    ax        ;надо сохранять все используемые регистры (для начала только ax)
    in    al, 60h        ;прочитаем код из клавиатуры
    cmp    al, 3bh        ;F1 ?
    jne    to_old_09    ;если не F1, то на старый вектор
..............................
    mov    cx, 'D'
    int    16h
    cmp    al, 0
    jne    to_iret
    mov    ah, 5
    mov    cx, 'I'
    int    16h
    cmp    al, 0
    jne    to_iret
    mov    ah, 5
    mov    cx, 'R'
    int    16h
 
    mov    ah, 5        ; ENTER
    mov    cx, 0Dh
    int    16h
 

под мс досом и фридосом всегда получается так (под4досом так не получается) что первый символ после выполнения команды появляется в строке после ее выполнения. вот на картинке видно что появляется буква D первая от DIR
 
   
 
бороться с этим можно если перед началом ввода в командную строку команды выдержать паузу

Цитата:
 
    mov    cx,0004h
    mov    dx,0000h
    mov    ah,86h
    int    15h
 

но пауза это дело не надежное, при cx=2 она например помогает в 50% случаев. в тоже время драйвер ansi.sys обходится без этой паузы в нем команда выполняется вообще быстро. в чем же дело может быть. не могу понять откуда это дублирование первого символа береться  

Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 11:59 29-10-2011 | Исправлено: bomzzz, 14:16 29-10-2011
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по программированию на Assembler


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru