Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как работают outsb, insb, outsw, insw ... ?  (Прочитано 1024 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Белый пони

  • Автор темы
  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Как работают outsb, insb, outsw, insw ... ?
« : 27 Январь 2011, 17:28:47 »
Чем сабж отличается от "обычных" inb и outb и др.?
Читал скудный ман, там про это ничего нет, а поиск в гугле выдаёт ссылки на этот самый ман :)
Цитировать
OUTB(2)                                                         Linux Programmer's Manual                                                         OUTB(2)

NAME
       outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - port I/O

DESCRIPTION
       This  family  of functions is used to do low-level port input and output.  The out* functions do port output, the in* functions do port input; the
       b-suffix functions are byte-width and the w-suffix functions word-width; the _p-suffix functions pause until the I/O completes.

       They are primarily designed for internal kernel use, but can be used from user space.

       You compile with -O or -O2 or similar.  The functions are defined as inline macros, and will not be substituted in without  optimization  enabled,
       causing unresolved references at link time.

       You use ioperm(2) or alternatively iopl(2) to tell the kernel to allow the user space application to access the I/O ports in question.  Failure to
       do this will cause the application to receive a segmentation fault.

CONFORMING TO
       outb() and friends are hardware-specific.  The value argument is passed first and the port argument is passed second, which is the opposite  order
       from most DOS implementations.

SEE ALSO
       ioperm(2), iopl(2)

COLOPHON
       This  page  is  part  of  release 3.24 of the Linux man-pages project.  A description of the project, and information about reporting bugs, can be
       found at http://www.kernel.org/doc/man-pages/.

Linux                                                                   1995-11-29                                                                OUTB(2)

Читал io.h, но моих знаний не хватило, чтоб понять что к чему, а комментов там нет( Может знатоки ассемблера помогут?

(Нажмите, чтобы показать/скрыть)

Подскажите, в чём там соль? Может у кого-то есть простенький пример использования?
« Последнее редактирование: 27 Январь 2011, 19:04:44 от Белый пони »

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Как работают outsb, insb, outsw, insw ... ?
« Ответ #1 : 28 Январь 2011, 05:53:34 »
...Может у кого-то есть простенький пример использования?
Что ты хочешь получить? Ты вообще понял зачем это надо?
Осиль, наконец, как устроен компьютер (по настоящему, а не то что ты знаешь).
Когда изучишь вопросы отпадут.

Как бы в заголовочном файле есть ответ. Сравни параметры передаваемые outb и outsb

(Нажмите, чтобы показать/скрыть)

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net

Оффлайн Белый пони

  • Автор темы
  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
Re: Как работают outsb, insb, outsw, insw ... ?
« Ответ #3 : 28 Январь 2011, 12:03:51 »
http://faydoc.tripod.com/cpu/outsb.htm
http://siyobik.info/index.php?module=x86&id=223
Это я тоже видел, но это же для ассемблера, там на одну переменную меньше :) Я догадываюсь, конечно, что count - кол-во записываемых символов из строки, но не хочеться наугад тыкать, думал, может есть отдельное описание для С++. Ну да ладно. Спасибо!

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Как работают outsb, insb, outsw, insw ... ?
« Ответ #4 : 29 Январь 2011, 15:42:19 »
ТАМ В ЗАГОЛОВОЧНОМ ФАЙЛЕ АССЕМБЛЕР ГОЛИМЫЙ!!!
Ты прикидываешься или все так плохо?

 

Страница сгенерирована за 0.06 секунд. Запросов: 24.