Форум программистов, компьютерный форум, киберфорум
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
iMacushka

Реализация резидентной программы...

27.01.2012, 17:22. Показов 1233. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача проста - на нажатие клавишы генерируется звуковой сигнал, но программа должна быть резидентной. Со вторым пунктом возникла одна неприятность. Я не понимаю как реализовать резидентную программу.
Гуглил на эту тему немало - и в итоге натыкался на еще большие непонятности.
В итоге в голове каша - завтра сдавать курсовую - а как выполнить реализацию резидентной программы я без понятия. Если это вдруг очень просто, то помогите чем можете - советом каким или обьясните какие обработчики прерываний использовать чтобе заставить вот ето стать резидентной.

Assembler
1
2
3
4
5
6
7
8
9
10
ifF10:
    mov ah, 8               
    int 21h             
    cmp al, 44h         
    jne input
sound:
    mov ah, 02h         
    mov dl, 7           
    int 21h
    jmp ok
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.01.2012, 17:22
Ответы с готовыми решениями:

Фрагмент резидентной программы
Прошу помочь с решением задания Написать фрагмент резидентной программы на языке Ассемблер MASM 86, сохраняющей в памяти фрагмент...

Фрагмент резидентной программы
Здравствуйте, не могли бы вы помочь с заданием? Нужно написать фрагмент резидентной программы на языке Ассемблер MASM 86, сохраняющий в...

Защита резидентной программы от повторной установки
Есть две программы резидентная и обращающаяся к ней. Что надо добавить чтобы защитить резидентную от повторной установки в память? ...

2
29.01.2012, 14:45

Не по теме:

Прочитай про резиденты у Калашникова, если речь идет о COM. У него есть пример обработчика прерывания и все расписано

0
26 / 9 / 4
Регистрация: 28.01.2012
Сообщений: 39
29.01.2012, 16:29
В общих чертах:
Тебе надо перехватить прерывание клавиатуры. В реальном режиме все просто: адреса всех обработчиков находятся по адресу 0000:0000-0000:0400 (т.е. в первом килобайте) - это таблица прерываний, они представляют собой far jmp (два слова = 4 байта) на обработчик прерывания. Прерываний может быть всего 256 (=> 256х4=1К). Прерывание клавиатуры - это int9, следовательно far jmp на обработчик находится по адресу (4х9=36=24h) 0000:0024.
Таким образом, прога должна состоять из нескольких частей:
1. Перехват. Считываем адрес штатного обработчика (два слова по адресу 0000:0024), запоминаем.
Записываем туда точку входа на процедуру обработчик. Выходим и остаемся резедентом.
2. Обработчик. Запрещаем прерывания. Сохраняем состояние проца. Издаем звук. Восстанавливаем состояние проца. Разрешаем прерываня. Делаем far jmp на ранее сохраненный адрес штатного (или не очень) обработчика.
Как-то так...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.01.2012, 16:29
Помогаю со студенческими работами здесь

Выход из резидентной программы или выгрузка ее из памяти
Я уже сюда не раз писал насчет резидентной программы. Многие помогли) Большое все спасибо) У меня есть программа, загружаемая...

Исходник резидентной проги
Подскажите, пожалуйста, где найти рабочий пример резидента. Гугль бестолковый. Мыло ничего не нашло.

Как сделать программу резидентной
Есть работающий код программы. Выводит сообщение на экран. Но необходимо во первых: чтобы после вывода сообщения программа восстанавливала...

Выгрузка резидентной программы
помогите написать выгрузку программы(код представлен), обычные часы.. надо сделать чтоб или от клавиши или от повторного запуска файла она...

Виртуальная машина зависает при загрузке резидентной программы
создал 2 файла test.asm тестирующая и code.asm резидентная программа. при загрузке резидентной программы виртуальная машина зависает не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru