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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

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

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

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


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

  • Автор темы
  • Любитель
  • *
  • Сообщений: 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.045 секунд. Запросов: 25.