Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > запись в порт


Автор: Garabar 9.12.2005, 16:58
Здравствуйте многоувожаемые.
Есть у миня обна розба такая: нужно сделать в дельфях вставку на асме, процедурку написать
которая будет аналогом процелуры"port[]" в паскале, тобышь для чтения и записи.
Заранее спасибо

Автор: Chingachguk 10.12.2005, 01:00
procedure WritePortByte(b: byte; PortAddr: word)
begin
asm
mov dx,PortAddr
mov al,b
out dx,al
end;
end;

Но ! Не во все порты можно писать в винде, допустим в LPT или COM еще как-то можно писать в win98, а в XP вообще винда не даст тебе это сделать (приложениям запрещается самостоятельно лезть в порты). В порты ЖД вообще ни в какой винде писать нельзя.

Надо либо драйвер писать, либо через API извращатся.

Автор: Garabar 12.12.2005, 15:37
Цитата(Chingachguk @ 10.12.2005, 01:00)
Но ! Не во все порты можно писать в винде, допустим в LPT или COM еще как-то можно писать в win98, а в XP вообще винда не даст тебе это сделать (приложениям запрещается самостоятельно лезть в порты). В порты ЖД вообще ни в какой винде писать нельзя.

Эт мы знаим, спасибо, но еслбы вы ешо написали как читать с порта былобы крайне великолепно.
Спасибо)

Автор: oleg1973 12.12.2005, 16:57
in al,dx
читаем в регистр al из порта указанного в dx

Автор: vood 25.2.2006, 07:43
asm
mov eax,0
out 21,eax
end;

Автор: Exekutor 2.3.2006, 11:32
Прошу прощения, что вмешиваюсь. Просто не удержался. Можно ли как-то узнать какие порты к какому оборудованию относятся?

Автор: oleg1973 2.3.2006, 11:36
по моему это в Ральфе Брауне описано если не ошибаюсь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)