Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с паралельным портом - ПОМОГИТЕ

5.7K
04 августа 2004 года
ZEREN
13 / / 04.08.2004
ПОМОГИТЕ !!!
Перехожу с досовского паскаля на Делфи. Не могу обращатся физически к памяти и к портам. Как это делается под Виндами???
Советовали исспользовать ассемблер(ассемблеровскую встаку). Скиньте пример програмы с такой вставкой.

Заранее благодарен...
10
04 августа 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by ZEREN
Перехожу с досовского паскаля на Делфи. Не могу обращатся физически к памяти и к портам. Как это делается под Виндами???


Лучше скажи, зачем тебе понадобилось обращаться напрямую к портам или памяти? В Винде так не программят.

5.7K
05 августа 2004 года
ZEREN
13 / / 04.08.2004
Цитата:
Originally posted by smartsoft

Лучше скажи, зачем тебе понадобилось обращаться напрямую к портам или памяти? В Винде так не программят.



Мене надо с максимальной скоростью считывать и писать в паралельный порт. Как мене сделать такую фишку под винду???

5.4K
06 августа 2004 года
ALS
20 / / 05.02.2004
Цитата:
Originally posted by ZEREN


Мене надо с максимальной скоростью считывать и писать в паралельный порт. Как мене сделать такую фишку под винду???



W9X:
[COLOR=darkblue]
procedure WritePort(addr: word; data: byte);
asm
mov al, data
mov dx, addr
out dx, al
end;
function ReadPort(Addr: word): byte;
asm
mov dx, Addr
in al, dx
end;
[/COLOR]

5.7K
07 августа 2004 года
ZEREN
13 / / 04.08.2004
Цитата:
Originally posted by ALS


W9X:
[COLOR=darkblue]
procedure WritePort(addr: word; data: byte);
asm
mov al, data
mov dx, addr
out dx, al
end;
function ReadPort(Addr: word): byte;
asm
mov dx, Addr
in al, dx
end;
[/COLOR]



Большое спасибо,.. на днях попробую,.. пока нет времени... уехал на море... 8)

Как я понял, етот код по указанному адрессу пишет один байт информации, и с указанного адресса читает байт информации.
У меня было сделано так - програма ищет самый большой непрерывный кусок памяти и туда непрерывно пишет, до прерывания, возвращает начало еттой памяти и размер изпользованной, потом я читаю с памяти и обрабатую полученные данный.
Если не сложно поясни, что такое dx и al?(как я понял ето какойто служебный регистр). И какая идёт адрессация в виндах? в досе у меня было POINTER, NAME^, @NAME. так и работали. И изменятся ли адреса паралельного порта ($378 and $278)?

5.4K
09 августа 2004 года
ALS
20 / / 05.02.2004
Цитата:
Originally posted by ZEREN

Как я понял, етот код по указанному адрессу пишет один байт информации, и с указанного адресса читает байт информации.
Если не сложно поясни, что такое dx и al?
И изменятся ли адреса паралельного порта ($378 and $278)?



Понял правильно.
dx, al - регистры процессора.
В качестве Addr задаешь адрес порта ($378 или $278 - что прописано в BIOS)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог