Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как переключать работу кусков кода с клавиатуры? Поскажите хотябы идею, работаю с Masm32 
:(
    Опции темы
VictorBondarenko
Дата 18.3.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 14.2.2005

Репутация: нет
Всего: нет



Уважаемые друзья!

Я работаю в досе в незащищенном режиме.
Модель памяти беру
 .model tiny
Моя прога считывает код по адресу 1000h:100h
и другой кусок кода по адресу 1500h:100h
Эти коды никак не связаны.

Мне надо чтобы я нажал клавишу "а"  и заработал первый кусок кода,
а затем нажал "в" и первый остановился и заработал второй кусок кода. 
Снова нажал "а"  и заработал первый кусок кода, а второй остановился и 
так пока не надоест.

Мне AndNot толково посоветовал, как запустить кусок кода и это работает
с помощью retf .  Но для необходимого чередования выполнения кода 
нужны какие-то прерывания от клавы. Может  Int 16h ?

   Может кто-то подскажет хотя бы идею основанную только на функциях БИОСА, 
а лучше кусок кода с использованием функций БИОСА.
             
                    С уважением и благодарностью за внимание,
                Виктор      
PM MAIL   Вверх
Severyanin
Дата 19.3.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: 1
Всего: 9



попробуй оформить эти куски кода в подпрограммы и вызывать их по нажатию клавиш, т е в основной проге опрашивать клавиатуру


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
MAKCim
Дата 19.3.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



VictorBondarenko, 
перехватываешь обработчик прерывания от клавиатуры, подменяешь адрес возврата в стеке и передаешь управление оригинальному обработчику
перехватить можно так
Код

change_ivt_entry:
; в BX - номер вектора IVT, в ES:DI - адрес кода перехватчика
; возврат в ES:DI адрес оригинального обработчика
    push eax
    xor ax, ax
    push ds
    mov ds, ax
    shl bx, 2
    mov ax, es
    shl eax, 16
    mov ax, di
    xchg dword [bx], eax
    mov di, ax
    shr eax, 16
    mov es, ax
    pop ds
    pop eax
    ret



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0706 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.