Цитата(gormih @ Nov 6 2006, 13:11)

1) Никто и не предлагает писать 100 к на ассемблере
2) Переносимость си с ядра на ядро тоже не является легким делом, не будем лукавить. У всех ядер свои архитектурные особенности, свои компиляторы со своими багами, и если все это учитывать - про переносимость в большинстве случаев тоже можно забыть

"Тяжело только первую тысячу лет" © Шекли
В-общем-то, один из наших проектов - 100K+ сишных строк мигрировал так: x186->AVR->MSP430->MBM90->ARM7.
Сложным был только первый порт (до двух недель ковырялись), а все остальные - за день-два. То есть - один раз себя дисциплинируешь, а дальше оно само катится.
Что до subj - имхо, ARM имеет очень "враждебный" по отношению к человеку ассемблер. Писать на нем нудно и долго. И не всегда эффективно. У меня был пример - процедура вычисления кода Хемминга для сектора NAND - сначала я этот кусочек написал на ассемблере, потом - на C. И надо признать, что GCC компилятор у меня в тот раз выиграл. И не потому, что я плохо знал архитектуру ARM

Просто компилятор - он же "железный" - рассматривает все возможные оптимизации и выбирает лучший вариант. А программисту обычно лень подумать несколько раз над одной и той же проблемой. В итоге, в моем случае C-компилятор хитро поскрещивал арифметические операции со сдвигами и уловными флагами и получил код в полтора раза быстрее и короче чем мой "ручной". Мне оставалось только "убить сибя ап стену"