![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 25.09.2010
Сообщений: 5
|
![]()
Требуется написать резидент - драйвер преобразования русских букв к верхнему регистру. По нажатию F5 включать и выключать резидент.
Написано все и все работает пока нажимаешь клавиши медленно. Если зажать кнопку, то иногда проскакивает тот регистр, который не нужен. Тоже самое, если нажать ф5, то флаг как-то скачет. Код:
запускаем rkm, нажимаем ctrl , запускаем 88. ну и экспериментируем с f5 на русском. Заранее благодарен! Последний раз редактировалось zhuk99; 26.09.2010 в 16:08. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
А зачем выводить символ в обработчике 9 прерывания? Нужно его просто подменять в буфере мне кажется. А там, уже вызывающая программа сама разберется, что ей дальше делать - печатать символ или как-то по другому его обработать.
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |
![]() |
#3 | |
Регистрация: 25.09.2010
Сообщений: 5
|
![]() Цитата:
запускаем программу - флаг равен 1, требуется преобразовывать к верхнему регистру. Нажимаем f5. флаг равен 0. на строках cmp flag,0 je return он должен пропускать преобразование, и при медленных нажатиях он это делает. Если начать нажимать клавиши быстро, то он повидимому иногда затирается и становиться равным 1. И вылетают большие буквы. Еще интересно получается если зажать f5 - прога выводит предыдущее значение флага по нажатию. Так вот если зажать f5 то должна быть последовательность 0101010101010 и тд а вываливается 01011110101101011110001011 - как видно не то что нужно! cli sti вроде стоят - в чем же проблема!? |
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 15.06.2010
Сообщений: 740
|
![]()
А, сорри, не увидел что там еще по F5 включается-отключается замена. Мммм.. А можно полный код программы, а то мне так не удобно дебажить..
Чтобы понять рекурсию, сперва нужно понять рекурсию.
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 25.09.2010
Сообщений: 5
|
![]()
или вот тут взять можно.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
ассемблер, возврат управления в резиденте | insan00b | Помощь студентам | 6 | 25.01.2010 16:26 |
Работа с флагами!!! | Student117 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 19.11.2009 09:27 |
Это ошибка Delphi или моя ошибка??? | bloodeagle | Общие вопросы Delphi | 3 | 12.11.2009 15:26 |