Война миров - ассемблер против си

         

ручная ассемблерная реализация crc()


18h ассемблерных байт (и 12 команд) против 34h откомпилированных байт (и 23 команд) — для классического цикла это хороший результат. Что же тогда говорить о нетривиальных вещах: сложных структурах данных, циклах в высоким уровнем вложенности, многомерных массивах и т. д.? С другой стороны, не все так плохо! Компилятор успешно распознал конструкцию "return 0 - crc" и вместо тупого вычитания из нуля, подобрал адекватную машинную команду NEG, означающую "дополнение до нуля".



Содержание раздела