role of assembly language

Status
Not open for further replies.

ccslearner

Junior Member level 1
Joined
Feb 1, 2013
Messages
19
Helped
2
Reputation
4
Reaction score
2
Trophy points
1,283
Location
India,tamilnadu
Visit site
Activity points
1,445
hello eda board community members , i am a beginner of embedded system i have a question .1)is compulsory to know assembly language for embedded system developer? because the compiler do the job of converting c to assembly level language then why we should know the concept of assembly level language i yhink my question is elementary however i want some brief answers from who are working in these field
 

In my opinion it's interesting to know at least a bit of assembly, specially if you want to work with not powerfull microcontrollers. Assembly is really good in speed and effectiveness but programming is much more slower and difficult.

So for me if you are not a professionnal looking for super fast programs, access to strange funcions in your micros...etc, it is not really necessary but it is a good idea at least to know a bit just to learn how the microprocessor works.
 

Back in the 'old days' it was imperative to use assembly language if you wanted optimum performance. I think nowadays compilers have gotten good enough so you don't need assembler. However, as Dreso said, it will probably give you a better understanding of how the underlying hardware actually works.
 

High level programming languages as C have replaced many applications that required assembly language. Even DSP applications now use C. Optimizations in speed and size of memory that can painfully be done in assembler. Are no longer necessary because in general memory is cheap and processors got very powerful. Nevertheless knowing assembler would not hurt and will give you an insight on what the compiler and the processor are doing. Because assembler and the processor´s architecture are very related.
 

Its worth adding that assembly language can work in systems with very low memory whereas C and most other high level languages require work space for themselves which would use most if not all memory in the system. For example, it would be difficult to use C in microcontrollers like the PIC10F series which have very small RAM space.

Brian.
 

It depends upon how much expertise you want/need in micro controllers. If you are just programming general micro controllers to do certain jobs I wouldn't bother with assembly language. (I have programmed extensively in assembly language before C was as good as it is now) Assembly language is so basic and boring and frustrating that unless you are doing some very specialized, super fast controllers you will never need it.

It wouldn't hurt you to write a small piece of code in assembly language to understand what a pain it is. You will soon understand that one command in C does 10 or 20 things in assembly language.
 

Thanks for your suggestion .. now i understand and i would like to learn assembly language ,where would be i start to learn ,any free tutorial or books or websites please tell me friends
 

Assembly language by it's nature is specific to one type of processor. Each has it's own set of instructions although the need to perform basic operations means almost all types have similar functionality, even if they have different names. I suggest you decide which manufacturer and family of processors you want to use then download an assembler for that type. The assembler documentation will help you understand the instruction set and assembler directives.

Brian.
 

If you are set on learning assembly language there are probably some books that can help you understand the general principles that you would see no matter what processor you are using. I don't know your level of programming experience but assembly language is so basic that you will need some help in how to do even simple things. There are NO macro commands so you will need to know how to use the code to do just about anything. We are talking about adding one bit to a register at a time.

As mentioned then each processor has its own command set. Obviously families of processors will have mostly the same commands so pick one that will most likely be used in your area of expertise and start there. If you want a project to learn on, let me know. I have tons of designs that need a micro controller and firmware.

Good luck.
 

If you go on Amazon there are a hundred books about this MCU. If no one on this site can suggest a good one then look through the books and find one that is rated high and the contents sound like what you are looking for. I imagine a good book will contain suggestions about compilers.
 

Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…