Министерство образования РФ
Хабаровский государственный технический университет
Заочный факультет ускоренного обучения
Кафедра «Вычислительная техника»
По дисциплине «Организация ЭВМ и систем»
Исследование векторной таблицы связи MS-DOS
Работу выполнил: студент Войтенок А.А.
Шифр № 4кПОв 0013796
Проверил: доцент к.т.н. Шоберг А.Г.
г. Хабаровск
2002 г.
Цель работы: «Изучение назначения и структуры векторной таблицы связи основных управляющих блоков ОС MS-DOS»
1. Структура векторной таблицы связи.
Смещение байт |
Размер байт |
Описание |
-2 |
2 |
Сегментный адрес первого блока в цепочке MCB |
0 |
4 |
Указатель на первый блок управления устройствами |
4 |
4 |
Указатель на таблицу файлов MS-DOS |
8 |
4 |
Указатель на драйвер CLOCK |
12 |
4 |
Указатель на драйвер CON |
16 |
2 |
Максимальный размер блока (в байтах) для устройств, выполняющих передачу данных отдельными блоками |
18 |
4 |
Указатель на структуру, описывающую дисковые буферы |
22 |
4 |
Указатель на массив информации об устройствах |
26 |
4 |
Указатель на таблицу FCB |
30 |
2 |
Размер таблицы FCB |
32 |
1 |
Число устройств, выполняющих передачу отдельными блоками |
33 |
1 |
Значение LASTDRIVE в файле config.sys |
34 |
? |
Начало драйвера NUL. Этот драйвер всегда первый в списке драйверов MS-DOS |
Доступ к векторной таблице связи осуществляется с помощью функции 52h прерывания 21h. Результат – пара сегмент – смещение помещаются в регистры es:bx. Адреса в таблице связи хранятся в виде смещение(младшее слово)-сегмент(старшее слово).
Формат блока MCB:
Смещение, байт |
Размер, байт |
Описание |
0 |
1 |
Тип блока ‘M’- промежуточный блок в цепочке, ‘Z’- последний блок в цепочке |
1 |
2 |
Сегментная компонента адреса владельца блока |
3 |
2 |
Количество параграфов памяти, зарезервированных в блоке. |
5 |
3 |
Резерв |
8 |
8 |
Имя программы, если блок - програма |
2. Результат изучения векторной таблицы связи.
Параметр |
Значение |
Адрес векторной таблицы связи |
00С9:0026 |
Сегментный адрес первого блока в цепочке MCB |
0225 |
Указатель на первый блок управления устройствами |
00C9:1346 |
Указатель на таблицу файлов MS-DOS |
00C9:00CC |
Указатель на драйвер CLOCK |
0070:004C |
Указатель на драйвер CON |
03AE:0000 |
Максимальный размер блока (в байтах) для устройств, выполняющих передачу данных отдельными блоками |
512 |
Указатель на структуру, описывающую дисковые буферы |
00C9:006D |
Указатель на массив информации об устройствах |
0AA6:0000 |
Указатель на таблицу FCB |
07F6:0000 |
Размер таблицы FCB |
0 |
Число устройств, выполняющих передачу отдельными блоками |
8 |
Значение LASTDRIVE в файле config.sys |
26 |
Цепочка блоков MCB:
Тип |
Сегментный адрес владельца блока |
Длина блока в параграфах(шест-надцатеричная) |
Имя программы |
M |
0008 |
09D0 |
SD |
M |
0008 |
0004 |
SC |
M |
0DBF |
0001 |
COMMAND |
M |
ODBF |
000D |
|
M |
0C0D |
01B1 |
KEYB |
M |
0DBF |
00DD |
WIN |
M |
0EA0 |
0002 |
|
M |
0EA0 |
0360 |
vmm32 |
M |
1212 |
0010 |
|
M |
1212 |
021A |
COMMAND |
M |
1212 |
0059 |
|
M |
1497 |
000F |
|
Z |
1497 |
8B68 |
L3 |
Текст программы.
data segment para public 'data'
M_CVT db 0dh,0ah,0dh,0ah,'Get CVT 1 $'
M_MCB db 0dh,0ah, 'MCB chain 2 $'
M_QUIT db 0dh,0ah, 'Quit Esc $'
NL db 0dh,0ah,'$'
SEP db ':$'
SPC db ' $'
FILENAME db 8 dup (0)
MCB_SEG dw 0
TMP_BYTE db 0 ; временный байт
TMP_WORD dw 0 ; слово временного хранения
BUFFER db 512 dup (0)
T_CVT_ADDRESS db 0dh,0ah,0dh,0ah,'CVT address $'
T_MCB_SEG db 0dh,0ah,'First MCB segment $'
T_DEV_CB db 0dh,0ah,'Address first Unit Control Block $'
T_FILE_TAB db 0dh,0ah,'Address file table $'
T_CLOCK_DR db 0dh,0ah,'Address driver CLOCK $'
T_CON_DR db 0dh,0ah,'Address driver CON $'
T_MAX_BTBL db 0dh,0ah,'Max blocksize $'
T_DISK_BUF db 0dh,0ah,'Address disk buffers description $'
T_DRV_INFO db 0dh,0ah,'Address drives info $'
T_FCB_TABL db 0dh,0ah,'Address FCB $'
T_FCB_SIZE db 0dh,0ah,'Size FCB $'
T_NUM_BDEV db 0dh,0ah,'Number block devices $'
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.