Виж пълна версия : Asembler - откъде да го почна
Ky4e-Kacu4ka
18.05.05 г., 05:07
Здравейте, мисля да почна да пиша на асемблер, предимно системно за ПЦ, не че не ме изкушава примерно едно Win32 ICQ, но може би по късно. След като навляза в материала мисля да почна да пиша за някакви чипове /евентуално да си вадя хляба с това/. Та сега до въпроса, някои може ли да ми помогне с литература /pc format/ или с насока коя книжка я бива /примерно мн. старата синя книжка/, source codes, туториали, етц. Нивото на което съм е незабележително, малко на Паскал съм писал, малко С, с Асемблера съм до там - в час съм с двоична и шестнадесетична, с регистрите горе долу, и с синтаксиса пак горе долу. Също така кой асемблер с кой компилатор ще е най-удачен. Благодаря
singularity
18.05.05 г., 08:46
Това мнение е изтрито от потребителя. За повече информация в тази тема (http://www.hardwarebg.com/forum/showthread.php?p=1146569)
Private
18.05.05 г., 09:21
Имам колега, който пишеше на асемблер за една фамилия едночипови контролери. След това се заинтересува от развойните среди, набави си и сподели, че няма нищо общо като удобство, гъвкавост, време за създаване на програмата и откриване на грешки. Пише се на лесен език от високо ниво, не знам дали е точно C, след което развойната среда компилира много добре оптимизиран код, тъй като авторите на компилатора и самия процесор са в един екип и ти ползваш целия им опит и познание за архитектурата. Освен това програмирането е романтичната страна на нещата, добре е да се измисли приложение на едночиповия контролер, след което да се напише програмата и всичко да се завърши като готов продукт :)
Ky4e-Kacu4ka
18.05.05 г., 16:00
До тук окуражаващо :)
И аз все пак мисля да се занимавам с асм. Предубеден съм от "светила" в областта.
Ами моето мнение е малко обратно на горните. Първо че писанетона проргама е писане на програма, дали е асемблер, паскал, бейски , С или друг език разлика няма,прогрмаат е добре замислен алгоритъм. принципно, по белия свят, има хора които пишат алгоритмите, решават проблеми, и това са хората с големи заплати, а има и роби които пишат код по тиа алгоритми, те просто са научили операторите на даден език. В БГ не е точно така, а и по света само в фирми които се занимават със сериозни неща, веднага изклщчвам всякаквъ РС софтуер. Та ... първо трябва да придобиеш мисленето и навиците,това става на всякакъв език.
После много зависи към какво се насочиш, защото embeded системите са различни контролери нямат много общо с РС програмирането , па било то и на системно ниво. Като правило няма програмисти за контролери, или са много малко, и обикновенно тиа които пишат се пообиждат като ги нарекът софтуеристи :), за да пишеш за контролер трябва нещо повечеот това да занеш asm. Там обикновенно се решават проблеми, и ако не си просто този който описва алгоритъма на работа, а правиш самото изделие ще ти трябват доста задълбочени познания в много области на електрониката плюс познания в областа в която е контролера, и писането на рпограмата обикновенно е най-лесната част от цялата задача.
Не те съветвам да се ориентираш и строго към една фамилия, чипа който ползваш 100% трябва да е съобразен с решението на проблема ти, а не с това ти какъв чип ползваш. От тая гледна точка Microchip е най-удобен понеже има много широка и разнообразна гама, но товав никакъв случай не значи че са само те напротив, Texas има много добри чипове, атмел също, обърни внимание и на ARM архитектурата, тя все повече ще навлиза.
След това за самото писане, верно е че развойната среда спестява време, но е абсолютно безполезна за сериозна работа ако не позанаваш напълно процесора с който работиш. Това значи както да му познаваш хардуерните модули, така и асемблера, който ти казва че може да пишеш истински работещ софт без да занеш асемблер или те лъже или толкова разбира, естесвено не говоря за приложение което мига два светодиода, или пък управлява LCD дисплейче ... Моят съвет за език от високо ниво е С, тъй като има компилатори за всички платформи, и е сравнително стандартизиран.
За развойната среда, ако си се насочил към контролери Proteus се казва програмата която ти предлага симулация на процесора заедно със схемата, заедно с хардуерен дебъгер за съответната платформа ще получиш много добра развона среда.
Ако питаш мен ... хвани PIC процесори за начало, първо защото са малко по странни и ще понаучиш доста трикове, и втото защото са много популярни и лесни за доставка. Изтегли сиописания от Microchip, CCS C Compiler, или друг добър за PIC /HT,IAR/, един хардуерен дебугер ICD 1, Proteus и програматор, въпреки че за това може да позлваши дебъгера. Това е всичко, почваш с asm после минаваш на С....
Atmel също е много добро решение, като производителност е съизмерим с 18-та серия на Microchip, а в някои отношения е по производителен, говоря за Atmega8/16
Private
18.05.05 г., 18:16
Извинявам се, ако съм прозвучал погрешно в предишния си пост.
Там обикновенно се решават проблеми, и ако не си просто този който описва алгоритъма на работа, а правиш самото изделие ще ти трябват доста задълбочени познания в много области на електрониката плюс познания в областа в която е контролера, и писането на рпограмата обикновенно е най-лесната част от цялата задача.Човека, който цитирам отговаря на описаните от теб условия, занимава се и с хардуера, и с програмирането. След това за самото писане, верно е че развойната среда спестява време...който ти казва че може да пишеш истински работещ софт без да занеш асемблер или те лъже или толкова разбира...Не разбирам тази материя, нямам и намерение да лъжа. :)
Колегата ми не е споменавал, че асемблера е ненужен, а само, че развойната среда го улеснява.
За улеснение улеснява, спор няма, но не почнеш ли с асемблер ще си чупиш главата заради бъгове или особенности на развойната среда, иначе аз от извесно време пиша основно на Си добавям съвсем малко asm код ... но пък без него някой път трудно се минава .... поради една или друга причина, обикновенно не много оптимизирани функции на компилатора.
Да не говорим, че някои неща в реално време е трудно (невъзможно) да се направят на C. Заради един неособено добър компилатор пък, добих полезния навик да си преглеждам асемблерския сорс, за да видя какви ги е натворил.
По темата: За писане на Win32 програми на асемблер, не че няма начин (виж тези (http://www.vasm.org/links.html) неща), но определено не си струва мъките. Асемблер използвам предимно където се изисква максимална скорост и производителност (напр. обработка на видео поток :) ) и то става благодарение на MMX/SSE разширенията. Повечето IDE-та поддържат асемблер, така че не е проблем да се вгради в C++ приложение.
За едночиповите компютри аз също мисля, че PIC 18 серия са доста подходящи за начало. Но за сериозна работа се изискват познания по операционни системи за реално време и почти винаги се пише на C.
Хм ... за писането на С съмсъгласен, защото пести доста време, за РТОС .....не съвсем, има много сериозни приложения които не ползват РТОС, всъщност .....РТОС не е никак задължителен, много зависи от типа приложение и това как е стуктурирана програмата. В някои случаи много улеснява писането, но това пък не значи че прави програмата по добра, най-голямото му предисмтво всъщност е че дава адаптивност.
За Win32 и други РС приложения не мога да дам мнение, почти не се заниамвам с такива а ако пиша нещо то е или на BCB или чист дос, и в повечето случаи са само разни помощни програмки с които си тествам или настройвам хардуера..
И .. последно за С-то за контролери, значи наблюдавам моя комплатор, и забелязвам че почти всичко го прави максимално оптимално, проблема му е обслужването на прекъсванията, там губи доста време .... има и други дреболии където не компилира оптимално но те са рядкост, но пък си има разни странности /вкл.и бъгове ../, и именно за там трябва асм ...
Авторски права на vBulletin