[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Как видно вы пишете для PC и поэтому смысла нет писать на ассемблере под двум причинам.
1. Компиллятор сам оптимизирует выходной код и вручную вы его лучше не напишите. Для современных процессоров с конвейерной выборкой команд и одновременным их выполненим (для предсказаний переходов итп)важны такие параметры как порядок следования ассемблерных команд, выравнивание и многое другое. Вручную это практически невозможно учесть.
2. Одно обращение к порту ввода-вывода разбивается на 8 тактов шины. А для младших адресов портов ввода-вывода которые отображаются на ISA с частотой тактирования порядка 8 Мгц, цикл обращения все равно получится равный величине порядка 1 мкс. Отсюда вывод, даже если вы и выиграете что-то написанием кода на ассемблере, общий прирост скорости при обращении к портам ввода вывода будет стремиться к нулевой величине.
P.S. Единственно как можно выиграть в быстродействии при обращении к I/O это считыванием их состояния через DMA напрямую.
E-mail: info@telesys.ru