lab_10_shifr
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное учреждение высшего образования
Санкт-Петербургский государственный университет телекоммуникаций им. проф. Бонч-Бруевича
СПБГУТ
Факультет ИКСС
Кафедра ИБКС
ОТЧЁТ
по лабораторной работе 10
Тема: Разработка резидентной программы на С++
Дисциплина: Основы защиты информации в телекоммуникационных системах
Выполнила: Дзоблаев Э.С. группа ИКТУ-41
Проверил: доцент, ктн Шемякин С. Н.
Санкт-Петербург
2025 г.
Запуск DOSBox 0.74 и перехожу в навигатор (установленный ранее)
Теперь в директории перехожу к bc.exe
Далее перехожу в Options, далее в Directories и настраиваю путь к папкам:
Далее создаю новый файл.
Ввожу код программы:
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#define INTR 0x1C
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
void interrupt (*oldhandler)(__CPPARGS);
int ahour, amin, asec;
int alarm_active = 1;
void bios_beep()
{
union REGS r;
r.h.ah = 0x0E; // вывести символ в TTY mode + BEEP
r.h.al = 7; // BEL — звуковой сигнал
r.h.bh = 0;
r.h.bl = 7;
int86(0x10, &r, &r);
}
void interrupt handler(__CPPARGS)
{
struct time t;
gettime(&t);
if (alarm_active &&
t.ti_hour == ahour &&
t.ti_min == amin &&
t.ti_sec == asec)
{
alarm_active = 0;
// BIOS-звук 3 раза
bios_beep();
bios_beep();
bios_beep();
}
oldhandler();
}
int main()
{
printf("Enter alarm time (hour min sec): ");
scanf("%d %d %d", &ahour, &amin, &asec);
printf("Alarm set for %02d:%02d:%02d\n", ahour, amin, asec);
printf("Press any key to activate TSR...\n");
getch();
oldhandler = getvect(INTR);
setvect(INTR, handler);
printf("TSR loaded.\n");
union REGS r;
r.h.ah = 0x31;
r.x.dx = 0x0100;
int86(0x21, &r, &r);
return 0;
}
Далее сохраняю файл F2 и запускаю:
Воспроизводится звук.
