[an error occurred while processing this directive]
|
Таким образом, тот адрес, который пишется при аллокации памяти в BAR PCI-устройства вовсе не соответсвует тому адресу, по которому надо делать mov для записи в PCI. Прямое соответствие имеет место только для IO (16-разрядная подсистема портов в PC). Для работы с памятью PCI-устройства надо ее сперва отмаппировать (установить соответствие между физическим адресом и виртуальным в адресном пространстве программы, который, собственно, и надо указывать в asm-командах). В Windows для этого есть спец. ядерные функции, а в ДОС-е надо ставить DOS-extender для работы с 32-разрядными приложениями, что-нибуть типа DOS4GW (ух, как давно это оказывается уже было...).
Вобщем, разбирайтесь с механизмом формирования адресов у PC.
E-mail: info@telesys.ru