![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.02.2013
Сообщений: 38
|
![]()
Есть блок кода ассемблера (работает без ОС, из загрузочного сектора).
Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]()
В BIOS есть вызов чтения символа с клавиатуры (целой строчки насколько я помню нет) но подозреваю, что в 32битном режиме BIOS работать не будет. Лучше всего читайте строчку до входа в 32бит режим.
Ref: http://www.ctyme.com/intr/int-16.htm Последний раз редактировалось waleri; 28.08.2013 в 17:11. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 26.02.2013
Сообщений: 38
|
![]()
Я не слишком силен в ассемблере, можно маленький пример - считать и вывести введенную клавишу? Нашел в инете пример:
Код:
пытаюсь так (в режиме 16 бит), компилиться, но изменений в работе проги нет: Код:
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 26.02.2013
Сообщений: 38
|
![]()
Работаю в защищенном режиме, все еще пытаюсь считывать символы с клавиатуры. Сейчас пытаюсь делать это так:
Код:
и посоветуйте плиз литературу или статьи про прерывания процессора в защищенном режиме |
![]() |
![]() |
![]() |
#5 | |
Регистрация: 15.09.2013
Сообщений: 8
|
![]()
Может кому-то пригодится:
Цитата:
Код наверняка с ошибками, т.к не тестировал и писал по памяти большую часть. Как это работает. Входим в цикл ожидания нажатия. Если захватили клавишу - сдвигаем позицию символа и в eax записываем то, что нужно вывести. Сам алгоритм не оптимален, но работает. Кстати, для таких функций, как "удаление символа" нужно лишь немного импровизации. Почти тоже самое, только вместо символа - пробел, а вместо add ebx,2 - sub ebx,2. |
|
![]() |
![]() |
![]() |
#6 |
Регистрация: 12.05.2010
Сообщений: 6
|
![]()
ну во первых после переключения в PM прерывания BIOS больше не доступны
во вторых в PM нужно еще таблицу прерываний создать Вот патом только можно будит считывать данные с клавиатуры |
![]() |
![]() |
![]() |
#7 |
Регистрация: 15.09.2013
Сообщений: 8
|
![]()
Бред. 60H работает в обоих режимах, только при цикле ожидания нужно отключать прерывания. Лично тестировал.
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 15.09.2013
Сообщений: 8
|
![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ввод/вывод данных с клавиатуры в opengl | flaps | Visual C++ | 0 | 24.05.2011 21:07 |
List Control. Ввод данных с клавиатуры | juky88 | Общие вопросы C/C++ | 1 | 01.05.2011 18:51 |
Ввод данных с клавиатуры (Eclipse) | k0tone | Помощь студентам | 0 | 28.01.2011 21:38 |
ввод данных с клавиатуры | juden | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 07.05.2008 18:05 |