Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО практика.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.17 Mб
Скачать

1.Команды общего назначения ms dos

Смена текущего каталога:

Cd[дисковод:][путь]

Cd\ Переход в корневой каталог

Cd .. Переход в головной каталог

просмотр каталогов:

dir[дисковод:][путь\][имя файла][параметры]

dir оглавление текущего каталога

dir a: оглавление диска а

dir /w оглавление текущего каталога в широком формате

Создание каталога:

Md [дисковод:][путь\]имя каталога

Удаление каталога:

Rd [дисковод:][путь\]имя каталога

Переименование каталога:

Move[дисковод:][путь\]имя каталога новое имя каталога

Создание текстовых файлов:

Copy con имя файла

Переименование файла:

Ren имя файла1 имя файла2

Перемещение файлов в другой каталог:

Move[/у]имя файла имя каталога

Вывод файла на экран:

Type Имя файла

Смена текущего дисковода :

Имя дисковода:

Форматирование:

Format a:/u безусловное форматирование

Format a:/s отформатировать и сделать системной

Format a:/q очистка дискеты

Перенос на диск системных файлов:

Sys[путь]диск:

2. Таблица векторов прерывания

Для того, чтобы связать адрес обработчика прерываний с номером прерывания, используется таблица векторов прерываний (ТВП), занимающая первый килобайт оперативной памяти. ТВП находится в диапазоне адресов от 0000:0000 до 0000:03FFh и состоит из 256 элементов – дальних адресов обработчиков прерываний.

Адрес точки входа в ISR называется вектором прерывания и хранится в специальной таблице, называемой таблицей векторов прерываний (ТВП). Сама ISR может находиться в любом месте памяти, поэтому вектор прерывания занимает 4 байта: 2 байта – на значение сегментного регистра, устанавливаемое в CS (старшее слово), 2 байта – на значение смещения, устанавливаемое в IP (младшее слово).

Вся ТВП занимает 2564 = 1024 байта (400 h) и располагается в оперативной памяти с адресом 0000:0000.

При возникновении прерывания процессор помещает в стек 6 байт: текущее значение CS, текущее значение IP (пара этих регистров определяет точку, с которой возобновится выполнение прерванной программы), а также 2 байта флагов процессора. После этого в CS и IP устанавливаются значения из ТВП, которые задают адрес начала ISR.

Сама ISR – это программа, построенная с соблюдением специальных правил:

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

перед завершением измененные регистры восстанавливаются в исходное значение;

последней командой ISR, как правило, является команда возврата из прерывания IRET. Выполняя IRET, процессор извлекает из стека 6 байт информации, которые последовательно помещает в регистры IP, CS и регистр флагов, возвращаясь к исполнению прерванной программы. Часто обработчикам программных прерываний требуется передать какие-то параметры и получить какие-то результаты по завершении исполнения ISR. Для такого обмена данными используются внутренние регистры процессора.

Для определения адреса ISR воспользуемся утилитой DiskEdit

Выбираем прерывание: например 0Ch, определяем смещение относительно начала дампа памяти. Для этого номер прерывания умножаем на 4 ( так как вектор прерывания занимает 4 байта ): 0Ch*4=30. Находим CS и IP:

CS=037E

IP=006E

Пара CS:IP образуют адрес ISR относительно начала дампа памяти.

Определяем этот адрес, добавляя к CS справа ноль, и прибавляем содержимое регистра IP ( получили абсолютный адрес ISR):

037E0+006E=0384E 00000000: 68 10 A7 00 8B 01 70 00 - 16 00 7E 03 8B 01 70 00

00000010: 8B 01 70 00 B9 06 0E 02 - 40 07 0E 02 FF 03 0E 02

00000020: 46 07 0E 02 EC 06 32 05 - 3A 00 7E 03 54 00 7E 03

00000030: 6E 00 7E 03 88 00 7E 03 - A2 00 7E 03 FF 03 0E 02

00000040: A9 08 0E 02 A4 09 0E 02 - AA 09 0E 02 5D 04 0E 02

00000050: B0 09 0E 02 80 0E 8C 07 - C4 09 0E 02 8B 05 0E 02

00000060: 0E 0C 0E 02 14 0C 0E 02 - 1F 0C 0E 02 2E 16 8C 07

00000070: AD 06 0E 02 A4 F0 00 F0 - 37 05 0E 02 FA 24 00 C0

Выбираем с помощью DiskEdit дамп памяти с адреса 0384E, где находится программа обработки прерываний от асинхронного последовательного порта COM1.

В следующей таблице приведены аппаратные прерывания и их соответствующие адреса. Адреса могут и не совпадать: это зависит от версии ОС, конфигурации ПЭВМ, её настройки.

│ IRQ INT Address Description

│ 0 08 020E:0746 Timer Click

│ 1 09 0532:06EC Keyboard

│ 2 0A 037E:003A Second 8259A

│ 3 0B 037E:0054 COM2: COM4:

│ 4 0C 037E:006E COM1: COM3:

│ 5 0D 037E:0088 LPT2:

│ 6 0E 037E:00A2 Floppy Disk

│ 7 0F 020E:03FF LPT1:

│ 8 70 037E:0035 Real-Time Clock

│ 9 71 CE02:2536 Redirected IRQ2

│ 10 72 037E:00BC (Reserved) │ 11 73 037E:00D6 (Reserved)

│ 12 74 037E:00F0 (Reserved)

│ 13 75 020E:0CC6 Math Coprocessor

│ 14 76 D174:074E Fixed Disk

│ 15 77 037E:0124 (Reserved)

├────────────────────────────────────────────