
- •Московский институт
- •Лабораторная работа 1.
- •Краткие теоретические сведения
- •Определение типа э в м.
- •Определение объема оперативной памяти.
- •Определение типа адаптера дисплея.
- •Ревизия периферийных устройств.
- •Домашнее задание.
- •Пример вызывающей программы
- •Режим графики
- •Определение времени работы программы
- •Домашнее задание
- •Лабораторная работа 4 Методы защиты программ и данных краткие теоретические сведения
- •Шифрование путем замены.
- •Шифрование путем перестановок.
- •Шифрование с помощью ключа.
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа 5 Отладчик d e b u g. Краткие теоретические сведения
- •Что такое debug
- •Рабочие регистры
- •Регистры сегментов
- •Регистры смещения
- •Регистр флагов
- •Команды debug
- •Некоторые команды ассемблера
- •Небольшие примеры
- •Домашнее задание
- •Порядок выполнения работы
- •Лабораторная работа 6 Вывод точечной графики для ega адаптера. Циклы и процедуры в ассемблере. Краткие сведения о видеосистемах ibm pc.
- •Программа на ассемблере
- •Пример программы
- •Порядок выполнения работы
- •Лабораторная работа 7 Генерация звука краткие теоретические сведения
- •Пример программы
- •Домашнее задание
- •Небольшие примеры Создание файла
- •Домашнее задание
- •Общие Сведения о системе Вход в систему:
- •Выход из системы:
- •Команда man (оперативный справочник)
- •Команды mount, umount
- •Маршрутные имена файлов
- •Команда who
- •Команда cd
- •Команда pwd
- •Команда mkdir.
- •Команда rmdir.
- •Команда ls.
- •Команда cp.
- •Требуется указать как минимум два аргумента - источник и приемник
- •Команда more и cat
- •Команда mv.
- •Команда chmod
- •Порядок выполнения работы
- •Фильтры и регулярные выражения Команды, изучаемые в данной лабораторной работе:
- •Команда cat
- •Команда tee
- •Команда wc
- •Команда spell
- •Команда sort
- •Команда cut
- •Команда diff
- •Команда grep и fgrep.
- •- I игнорирует регистр - с выводит только число, соответствующее количеству строк с заданным образцом
- •Регулярные выражения
- •Порядок выполнения работы
- •Лабораторная работа 11. Интерпретатор команд Bourne Again Shell (bash). Команды, изучаемые в данной лабораторной работе:
- •Программирование в Bourne Again Shell
- •Команды echo и read
- •Коды завершения
- •Команда test
- •Команды exit и return
- •Команда let
- •Оператор Описание
- •Команда if-then
- •Команда case
- •Команда while
- •Команда for-in
- •Порядок выполнения работы
- •Лабораторная работа 12
- •Shell-программирование: сигналы и прерывания.
- •Хранение файлов во внешней памяти.
- •Общие сведения о системе
- •Команда kill
- •Команда trap
- •Виды действий с сигналами прерываний :
- •Размещение команды trap в программе
- •Выполнение команд в фоновом режиме.
- •Запуск заданий в фоновом/оперативном режиме
- •Команда tar
- •Команда cpio
- •Использование команды find при резервном копировании
- •Порядок выполнения работы
Пример вызывающей программы
#include <stdio.h>
#include <process.h>
#include <errno.h>
void main()
{
char *fan_name;
a: printf("\Введите имя программы;");
scanf("%s",fan_name);
if (*fan_name=='quit') exit(0);
system(fan_name);
perror("\n Код ошибки в вызываемой программе");
goto a;
}
ДОМАШНЕЕ ЗАДАНИЕ
1. Написать программу вычисления одной из функций: sin(x), cos(x), x2 (в виде самостоятельной ЕХЕ-программы).
2. Написать программу, которая могла бы вызывать Вашу программу и выполнять команды DOS, а также осуществлять возврат в DOS, используя меню:
ВЫБОР ПРОГРАММЫ:
1 - sin(x)
2 - cos(x)
3 – команда DOS или произвольная программа
4 - возврат в DOS.
Обратите внимание на необходимость “обнуления” имени вызываемой программы при повторном вызове с использованием функции system.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
1. Получить у преподавателя допуск на лабораторную работу.
2. Отладить программы на ЭВМ.
3. С помощью команды DOS mem/c (mem/c/p) исследовать распределение памяти ЭВМ после запуска различных программ.
4. Защитить лабораторную работу.
ЛАБОРАТОРНАЯ РАБОТА 3
Методы вывода информации на терминал в MS DOS
(IBM PC/AT с EGA)
КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
В лабораторной работе №1 мы рассматривали вопрос о том, как можно определить тип адаптера дисплея и объем видеобуфера. В настоящей работе описываются различные режимы вывода для EGA. Адаптер EGA может быть снабжен 64К, 128К, 256К памяти. Кроме использования в качестве видеобуфера, эта память может также хранить до1К задаваемых символов. Стартовый адрес буфера дисплея программируемый, поэтому буфер начинается с адреса A000H для улучшенных графических режимов с B000H и B800H для совместимости со стандартным монохромным и цветным графическим режимами.
Доступное число страниц зависит как от режима экрана, так и от количества имеющейся памяти. EGA имеет ПЗУ на 16К, которое расширяет процедуры работы с терминалом BIOS.
В текстовом режиме буфер начинается с данных верхней строки экрана от левого угла. Дальнейшие данные переносятся с правого конца одной строки на левый конец следующей, как будто экран представлен одной длинной строкой. В графическом режиме буфер может быть разделен на 2 или 4 части. У EGA каждая часть буфера содержит один бит из двух или четырех, которые описывают цвет данной точки экрана.
При выводе текста различные видеосистемы работают одинаково. Для экрана (25 строк по 80 символов) отводится 4000 байт (по 2 байта на каждый символ). Первый (четный) байт содержит код ASCII, который аппаратно преобразуется в связанный с ним символ и посылается на экран. Второй (нечетный) байт содержит атрибуты. Это информация о том, как должен быть выведен символ.
Структура байта атрибутов:
биты 0-1-2 - код цвета символа;
бит 3 - бит интенсивности;
биты 4-5-6 - код цвета фона знакоместа;
7 - 0 (мигание - 1).
Коды цветов:
0 - черный;
1 - синий;
2 - зеленый;
3 - циан (голубой);
4 - красный;
5 - магента;
6 - коричневый (с битом интенсивности - желтый);
7 - белый.
УПРАВЛЕНИЕ ВЫВОДОМ СИМВОЛОВ В СИ
В языке СИ есть функции, которые позволяют задавать цвет символа и фона знакоместа. Функция textcolor (x) - задает цвет символа (x - int, код цвета). Функция textbackground (x) - задает цвет фона знакоместа (x -int, код цвета). Для установки видеорежима можно воспользоваться функцией 0Н прерывания 10Н:
_AH = 0x00,
_AL = 0x03 - третий (80*25, цветной),
geninterrupt (0x10),
или функцией textmode (x), где x = {C80, С40, BW80, BW40}.
Для непосредственной записи в видеопамять можно использовать функции: poke и pokeb с параметрами (0xB800, X, Z), где 0xB800 - сегмент соответствующий началу видеобуфера, X - смещение, Z - значение байта. Функция pokeb записывает байт, а poke - слово по указанному адресу.