Аналоги команд out/in под линуксовый компилятор as

Тема в разделе "WASM.UNIX", создана пользователем treekool, 10 июл 2008.

  1. treekool

    treekool Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    88
    Всем здрасти. У меня такая проблема. Хотел использовать команды in out под as но жестоко обламался. Пишет
    Error: suffix or operands invalid for `in' , так-же и out. Подскажите, может быть есть аналоги этих команд, или ещё чё-нибудь.
    Зарание пасибо.
     
  2. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    Видать как-то не так ты in/out под as оформляешь...
     
  3. treekool

    treekool Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    88
    Типо так и оформляю:
    Код (Text):
    1.   mov $888,%edx
    2.   mov $00000001,%eax
    3.   out %eax,%edx
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    in/out афаир не работает с 32х битными регистрами.
     
  5. treekool

    treekool Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    88
    А как тогда работать с портами на 32x бинтных регистрах?
     
  6. treekool

    treekool Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    88
    С 16x битными регистрами пишет ошибка сегментирования
    Код (Text):
    1.   mov $888,%dx
    2.   mov $0001,%ax
    3.   out %ax,%dx
     
  7. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    В смысле, Segmentation fault во время выполнения? Всё правильно, кто же даст доступ к портам заурядной прикладной программе? Скомпилировать можно, только работать это не может.
    Код (Text):
    1. out %eax,%dx
     
  8. treekool

    treekool Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    88
    А черз что тогда в никсах получить доступ к портам?
     
  9. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    через ядро
     
  10. treekool

    treekool Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    88
    А конкретнее можа. Мож какая библиотека нужна или ещё что нибудь.
    Если чё под Линукс.
     
  11. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    treekool
    outb, из kernel module.
     
  12. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    treekool
    Рекомендую dosemu -- ему можно в конфиге прописать к каким портам давать эмулируемой машине прямой доступ :)

    А если хочется писать именно linux-native код, то есть два варианта: либо из ядра, либо можно поковырять dosemu на тему того, как он делает: dosemu никаких своих драйверов не грузит. Правда есть у меня некоторое сомнение, что я видел в конфигураторе ядра какие-то опции в описании которых упоминался dosemu. Но даже если и так, какая разница. Можно, но я не знаю как. У тебя есть всё, для того чтобы заняться самостоятельным исследованием. Я б, например, с удовольствием услышал бы как это сделать... ;)
     
  13. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    Из-под root можно и без драйверов: есть две функции ioperm() и iopl() - первая открывает доступ к указанному диапазону адресов, вторая понижает IOPL, что приводит к возможности доступа к любым портам, а также вещам типа cli/sti/hlt.
     
  14. treekool

    treekool Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    88
    Пасибо всем!!! :)
     
  15. treekool

    treekool Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    88
    Простите меня за мою тупость. Пожалуйста кто нибудь покжите хоть один пример
    использования через ядро.
    Буду очень рад :)
     
  16. s0larian

    s0larian New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2004
    Сообщения:
    489
    Адрес:
    Крыжёпполь
    http://linux.die.net/man/2/outb

    http://www.google.com/search?hl=en&safe=off&q=kernel+outb&btnG=Search