| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| оптимизация на асемблерски код http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=7394 |
Страница 1 от 2 |
| Автор: | michev [ Сря Дек 16, 2009 11:50 am ] | |||||||||
| Заглавие: | оптимизация на асемблерски код | |||||||||
Здравейте. Преди седмица, 2, реших да понауча асемблер за АВР. Всичко хубаво, но май нещо ми идва доста на нагорнище да превключа от Ц на асемблер. За целта се хванах да си правя проектче за управление на AD9850 (DDS synthesizer). Използвания контролер е мега8. Молбата ми е - някой от разбиращите асемблер да метне 1 око и да даде ценни методически указания за оптимизация от към големина на кода, предразполагане за решки и др. подобни .
|
||||||||||
| Автор: | Ники [ Сря Дек 16, 2009 6:32 pm ] |
| Заглавие: | |
имаш ли сериозна нужда от асемблер та си губиш времето с него? |
|
| Автор: | michev [ Сря Дек 16, 2009 6:53 pm ] |
| Заглавие: | |
Ами то по твойта логика, погледнато през моите очи - и с контролерите като цяло си губя времето, понеже се занимавам с тях през свободното си време, не професионално Конкретна причина да седна да уча асемблер - няма. Просто реших че, докато не изучва из основи мегите, няма да се прехвърля на нещо по голямо. Съответно ми се стори доста лесно изучаването им по подробно, чрез писане на асемблер. Допада ми също че, една и съща програма писана на Ц и на асемблер има различна големина (понякога в пъти) в полза на асемблера. И не на последно място - допада ми работата с контролера на максимално ниско ниво. |
|
| Автор: | head_up [ Сря Дек 16, 2009 6:59 pm ] |
| Заглавие: | |
абе и аз бях като тебе - на максимално ниско ниво да ми харесва да шляпам, ама ще установиш че за нещо по-голямо да пишеш така си е.... извратено. рядко се налага да дописваш на асмблер за повечето контролери, който имат и свястен Ц компилатор за тях, а то повечето са такива, тъй че не е особенно ползотворно занимание. ама за спорта не е лошо |
|
| Автор: | Wise [ Сря Дек 16, 2009 7:13 pm ] |
| Заглавие: | |
md2: dec temp; tst temp; breq md2end; rjmp md2; md2end: Не отчайвайте човека де....... Асемблерчето си е като първата любов md2: dec temp brne md2 md2end: ...................... не съм гледал всичко, но това ми се набива в очите давай смело нататък! |
|
| Автор: | bateAz [ Сря Дек 16, 2009 7:30 pm ] |
| Заглавие: | |
Много хубаво е да се започне с асемблер. Без това никога няма да добиеш представа какво всъщност прави контролера. След време, като пропишеш да C, ще добиеш навика от време на време да поглеждаш компилатора какво реално е направил и оттам да си правиш изводи как по-оптимално да ползваш езика. Така че, дерзай!
|
|
| Автор: | michev [ Сря Дек 16, 2009 8:22 pm ] |
| Заглавие: | |
Много си прав @Wise, окъкал съм всички бранчове @head_up, чувам че, сносните компилатори са платени, а аз лично избягвам да ползвам излекувани такива @bateAz, точно на обратно почнах - първо Ц, та после асемблер. Ц-то като език не ми е проблем, тъй като на него прописах преди малко повече от 10 години Проблемът ми със Ц идва от не знанието на тънкостите при писане на програми за МЦУ-та(стават тлъсти |
|
| Автор: | Ники [ Сря Дек 16, 2009 8:44 pm ] |
| Заглавие: | |
Аз също се занимавам повече като хоби с контролерите отколкото професионално. Съгласен съм и нееднократно гцц ме е дразнило с генерирания код, но познавам асемблера до степен само да преглеждам кода при проблеми в изпълнението или при неразумни обеми за някоя Ц-конструкция. Важното е програмата да работи достатъчно стабилно в зададениете й условия. Естествено ако ще се правят някакви оптимизирани фрагменти и С прави само глупости, асемблера няма алтернатива... Пишейки на Ц не видях нещо което значително ми спестява от ниското ниво наконтролера, все пак работиш директно с регистрите и битовете от тях на цялата периферия и ядро. Логиката да научиш асемблера на АВР за да те улесни при по големите контролери (неАВР) също не я разбирам. Единствено ако досега не си ползвал никакъв асемблер, без значение какъв. Не приемай мнението ми за заяждане, просто времето винаги може да бъде използвано по удачно, но все пак си е твое! |
|
| Автор: | sthx [ Сря Дек 16, 2009 9:43 pm ] | |||||||||
| Заглавие: | ||||||||||
Интересено пък, каква е тогава ползата от С-то? Пиша само на асемблер за малки моторолски процесори и за съжаление не мога да помогна на @michev. Веднъж се опитах да мина С и се отказах - не видях никакъв смисъл. Вярно, има всякаква аритметика, но прецених, че само за това не си струва. Все пак на асемблер мога да държа под контрол пространството и времето. Поне за мене това е по-ценно. Май пак се почна. |
||||||||||
| Автор: | bongo_x2 [ Сря Дек 16, 2009 10:02 pm ] |
| Заглавие: | |
Как управляваш нещо в реално време с програма която не знаеш за колко се изпълнява? |
|
| Автор: | Ники [ Сря Дек 16, 2009 10:02 pm ] |
| Заглавие: | |
sthx прочетох че пишеш за моторолски процесори, и ще попитам единствен ли асемблер ползваш, и колко модификации на процесора ползваш? От цитата, който си извадил, ще наблегна на две думички: ниското ниво. Не съм спИциалиста който ще проповядва против едното или другото, мен няма кой да ме агитира да се връщам обратно при асемблера, избрал съм как и на какво да пиша, мнението ми е че има защо С да е дори с малко по добре |
|
| Автор: | sthx [ Сря Дек 16, 2009 10:13 pm ] | |||||||||
| Заглавие: | ||||||||||
Да и аз не искам никого да агитирам и да твърдя , че по-добро решения от асемблера няма. Зависи от конкретния случай, история и т.н. Сега се сещам за друго предимство на С - ако човек трябва да пише за много видове процесори. Съзнателно избягвам да ползвам други фамилии, както и да ограничавам номенклатурата. Даже и за снабдяването е по-добре. Текущо ползвам 6-7 вида процесори с тенденция да станат 2-3. Конкретно на въпроса за фамилиите- 6800, HC11,HC08, HCS08. Всъщност аз зададох въпрос (а не критика) като към човек, който е работил и на С и на Асемблер и пак ще го повторя: Какви са съществените предимства на С? |
||||||||||
| Автор: | michev [ Сря Дек 16, 2009 10:30 pm ] | |||||||||
| Заглавие: | ||||||||||
Никъде не съм споменавал, че по - големите контролери няма да са АВР |
||||||||||
| Автор: | ¶ [ Чет Дек 17, 2009 4:51 am ] | |||||||||
| Заглавие: | ||||||||||
А какви са съществените предимства на асемблера ? |
||||||||||
| Автор: | tgi [ Чет Дек 17, 2009 5:39 am ] |
| Заглавие: | |
Айде стига сте тролили бе Какви са предимствата на *някои* асемблери, както и че няма такова нещо като "асемблер" съм писал повече от веднъж, който е искал да разбере да го е разбрал 100 пъти |
|
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|