Каждый канал ПДП имеет два
Каждый канал ПДП имеет два регистра: адресный регистр и регистр
счетчика. Регистр адреса задает область памяти, куда передаются
данные. В нашем случае операции чтения, значение в регистре адреса
указывает начало буфера данных. Когда контроллер дисковода читает
байт с дискеты, контроллер ПДП помещает этот байт в память по
адресу, определяемому регистром адреса. После каждого байта
контроллер ПДП увеличивает адресный регистр так, что он указывает
на следующий байт буфера.
На Фиг. 8.21 BUFFER - имя области данных. Программа определяет
абсолютный адрес буфера BUFFER в системе. Для этого она прибавляет
смещение BUFFER к сдвинутому (умноженному на 16) значению регистра
CS, который содержит значение сегмента буфера. Затем программа
помещает младшие 16 бит адреса в регистр адреса ПДП канала 2.
Старшие 4 бита адреса помещаются в специальный регистр "страницы".
В действительности контроллер ПДП 8237 работает только с
16-битовым адресом. В IBM PC этот регистр страницы добавлен для
того, чтобы программа могла читать данные в любое место памяти.
Имеется три регистра страницы, по одному для каналов 1, 2 и 3.
Регистр страницы имеет размер всего 4 бита, и поэтому старшие биты
регистра AL не играют роли при формировании физического адреса
буфера данных.
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:06:09
Фиг. 8.21 Настройка прямого доступа в память Page 1-1
PAGE ,132
TITLE Фиг. 8.21 Настройка прямого доступа в память
0000 STACK SEGMENT STACK
0000 0040[ DW 64 DUP (?)
????
]
0080 STACK ENDS
= 0000 DMA EQU 0 ; Адрес порта DMA
Содержание Назад Вперед