Board.KolibriOS.org

Official KolibriOS board
It is currently Sat Aug 17, 2019 4:04 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 2 posts ] 
Author Message
PostPosted: Thu Jul 22, 2010 10:52 pm 
Offline
ex Dron2004
User avatar

Joined: Sun Jul 18, 2010 12:44 pm
Posts: 67
Наткнулся на интересную статью Криса Касперски под "интригующим" названием :mrgreen: Война миров: Ассемблер против Cи.

В статье достаточно много интересного, в том числе разбор и анализ генерируемого C-компиляторами машинного кода (рассматриваемые версии компиляторов, правда, на сегодняшний день несколько устарели).

Тем, кто не читал, рекомендую ознакомиться. Не "войны" ради, а просто ради интереса :D .

З.Ы.: написал бы в Оффтоп, но он закрыт :?:


Top
   
PostPosted: Fri Jul 23, 2010 7:20 am 
Offline

Joined: Wed Dec 26, 2007 5:09 am
Posts: 214
Ну, я под АРМ пишу недоось по работе. Основная её часть будет на Аде (компилятор GNAT, входящий в состав GCC), на асме только первичные обработчики прерываний и т.п. вещи (они уже написаны и даже типа работают). Так вот, выяснилось, что кодогенерация у GCC отнюдь не фонтан: транслятор переставляет блоки операторов, выполняемые по условию (т.е. тела if'ов), не помнит содержимое регистров и т.п. (оптимизация что -O2, что -O3). Для интереса перепроверил, переписав небольшую подпрограммку на Си -- с тем же результатом, т.е. здесь проблема не в фронт-энде компилятора, а именно в оптимизаторе-кодогенераторе. В общем, без всякого напряга извилин при ручном программировании под АРМ 5-10% инструкций можно благополучно выкинуть. Сдаётся мне, что и под ИА-32 написать более эффективно, чем делает компилятор, позиционируемый как очень эффективный, можно без особых проблем. Другое дело, что разработка на ассемблере более трудоёмка и занимает больше времени, но разница отнюдь не в разы. У меня, например, основное время уходит на документирование и т.п. вещи, а они вообще никак не связаны с используемым языком.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 2 posts ] 

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited