Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2009, 10:29   #1
eldest
Новичок
Джуниор
 
Регистрация: 03.06.2009
Сообщений: 2
По умолчанию Резидент - напоминание (assembler)

Помогите с задачей, пожалуйста.

Резидентная программа: через определенный промежуток времени после запуска подать сигнал и выйти из системы.

Последний раз редактировалось eldest; 03.06.2009 в 10:31.
eldest вне форума Ответить с цитированием
Старый 03.06.2009, 18:41   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Могу помочь. Стукните в асю 368161244
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 04.06.2009, 16:38   #3
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

есть готовая
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 04.06.2009, 16:40   #4
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Код:
;---в сегменте данных
   MINUTES     DW    0     ;хранит число минут до звонка
   ALARMCOUNT  DW    0     ;хранит счетчик времени для звонка

;---установка ожидаемого значения счетчика времени суток
   CALL  REQUEST_MINUTES   ;запрос числа минут до звонка
   MOV   AX,MINUTES        ;пересылка в AX
   MOV   BX,1092           ;число импульсов счетчика в минуте
   MUL   BX                ;умножаем - результат в AX
   ;получаем текущее значение счетчика
   MOV   AH,0              ;номер функции чтения счетчика
   INT   1AH               ;читаем значение, младший байт в DX
   ;складываем оба значения
   ADD   AX,DX             ;
   MOV   ALARMCOUNT,AX     ;получаем нужное значение счетчика


;---заменяем вектор пустого прерывания
   PUSH  DS                ;сохраняем сегмент данных
   MOV   AX,SEG ALARM      ;берем сегмент процедуры ALARM
   MOV   DS,AX             ;помещаем его в DS
   MOV   DX,OFFSET ALARM   ;берем смещение процедуры
   MOV   AL,1CH            ;номер изменяемого вектора
   MOV   AH,25H            ;функция изменения вектора
   INT   21H               ;меняем вектор
   POP   DS                ;восстанавливаем сегмент данных
;
;---дальше продолжается программа
;
;---в конце программы возвращаем вектор прерывания
   MOV   DX,0FF53H         ;оригинальные значения для
   MOV   AX,0F000H         ;прерывания 1CH
   MOV   DS,AX             ;помещаем сегмент в DS
   MOV   AL,1CH            ;номер изменяемого вектора
   MOV   AH,25H            ;номер функции
   INT   21H               ;восстанавливаем вектор

;---процедура выдачи звукового сигнала
ALARM    PROC FAR          ;создаем длинную процедуру
         PUSH AX           ;сохраняем изменяемые регистры
         PUSH CX           ;
         PUSH DX           ;
;---читаем счетчик времени суток
         MOV  AH,0         ;номер функции чтения счетчика
         INT  1AH          ;читаем значение счетчика
;---сравниваем с требуемым значением
         MOV  CX,ALARMCOUNT   ;берем требуемое значение
         CMP  DX,CX        ;сравниваем с текущим
         JNE  NOT_YET      ;если неравны, то на выход
;---выдаем звуковой сигнал, если значения совпали
         CALL BEEP         ;эта процедура не показана
;---иначе возвращаемся из прерывания
NOT_YET: POP  DX           ;восстанавливаем регистры
         POP  CX           ;
         POP  AX           ;
         IRET              ;возврат из прерывания
ALARM    ENDP              ;конец процедуры
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 04.06.2009, 23:05   #5
eldest
Новичок
Джуниор
 
Регистрация: 03.06.2009
Сообщений: 2
По умолчанию

Всё, конечно, хорошо, вот только процедура BEEP как реализуется?
eldest вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Резидент на ассемблере пользователь Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 02.06.2009 09:13
Можно ли сделать автоматическое напоминание?? Milosh Microsoft Office Excel 9 18.06.2008 07:25