Можно дать to_s
основа кроме 10:
10.to_s(16) #=> "a"
Это зависит от конкретной микросхемы Ethernet MAC, с которой вы пытаетесь связаться. Даже микросхемы одного семейства часто имеют незначительные различия в том, как они работают. Вот почему современные ОС используют концепцию «драйвера»: производитель оборудования обычно пишет драйвер, потому что он знает оборудование, а драйвер обеспечивает перевод между оборудованием и тем, что ОС хочет видеть.
Часто можно получить документацию. от производителя микросхемы MAC, чтобы написать собственный драйвер. Опять же, вы должны точно знать, с каким чипом вы пытаетесь разговаривать, чтобы получить правильные характеристики. Некоторые микросхемы не имеют общедоступной документации, но обычно это не проблема микросхем Ethernet.
Самый простой ответ, хотя, вероятно, не то, что вы ищете, - написать код C на получите доступ к карте, скомпилируйте ее и просмотрите код, сгенерированный компилятором.
Код C, скорее всего, будет проходить через драйвер NIC напрямую или использовать библиотеку, такую как winpcap . Например, встроенная поддержка сырых сокетов в Windows была отключена по соображениям безопасности.
Но это не лучший способ узнать, как работают сетевые карты. Для этого выберите таблицу популярных встроенных сетевых адаптеров, например LAN91C111 , и прочтите, как получить к ней доступ. Этот научит вас многому, как взаимодействовать с Этертетом в необработанном виде.
ИМХО, это все еще недостаточно хорошая песочница для изучения ассемблера. Для этого,
Вы можете использовать вызовы самой карты, используя инструкции ввода и вывода или что-то подобное. Каждая карта Ethernet отличается, поэтому вам потребуется документация от производителя.
Следующий уровень - это вызовы функций DOS, если вы используете Windows. Это позволит вам получить доступ к ограниченным функциям карты Ethernet с помощью стандартных вызовов MSDOS. Вы можете найти их в старой документации MSDOS. Большинство из них все еще работают с более поздними версиями Windows, если я не ошибаюсь.
Вам нужно будет писать на определенные адреса портов. Эта страница Wiki может помочь вам начать работу.
MemoryMappedIO