ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
2 июня
308903 Топик полностью
Ralex (20.02.2012 14:51, просмотров: 184) ответил Shura на Клава же прерывание даёт
Вы  когда ESC нажимаете, программа сразу выходит. ESC она ждет в цикле. Там же в цикле опрашивается таймер, чтобы определить время когда отрисовывать новый кадр. Если время не пришло - опять идет опрашивать клавиатуру. То есть нет присущей современным программам возможности передавать управление ОС когда ничего не делаешь. Клава в DOS генерит прерывание, просыпается клавиатурный драйвер, запускает аппаратный интерфейс и высасывает из клавы символ, ложит его в специальный буфер клавиатуры (в ОЗУ компа расположен), засыпает. Программа обо всём этом ничего не знает, если только сама не подсела ДО или ПОСЛЕ прерывания клавиатуры. В общем случае - нет. Поэтому она вынуждена периодически запускать функцию DOS, которая проверяет, а не положили ли чего в буфер клавиатуры - если да то получает символ, если нет - код ошибки. Так и ждет, опрашивая то буфер, то таймер (по таймеру отрисовка нового кадра).