Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,152,767 members, 7,817,115 topics. Date: Saturday, 04 May 2024 at 06:19 AM

Is Assembly Language Dead? - Programming (2) - Nairaland

Nairaland Forum / Science/Technology / Programming / Is Assembly Language Dead? (7006 Views)

Any Assembly Language Programmer Here? / Want To Program PIC Microcontroller In Assembly Language?[enter HERE] / What Is Assembly Constructor In Assembly Language (2) (3) (4)

(1) (2) (Reply) (Go Down)

Re: Is Assembly Language Dead? by Ynot(m): 5:25am On Mar 11, 2006
For those interested, the following link is a tutorial series on the 14-bit core PIC family made by Microchip. It covers common PICs like 16F84, 16F628, 16F87x etc, It tells you nearly everything about its architectures like program code bus and data bus and many other aspects like Reset, Oscillators etc. It is much easier to learn while someone is talking to you via diagram and animated drawings. At this moment, the following areas are covered:

Architecture, Instruction Set, Development Tools Overview, Device Configuration, Resets and Oscillator.

Each downloadable module is an animated movie with audio. You can get them at the following link and save them to your hard drive for later viewing. PICmicro x14 Basic Training Modules .
Re: Is Assembly Language Dead? by Maleeq(m): 8:43pm On Apr 22, 2007
When it comes to execution speed, nuttin rocks like ASM. That's why it's the choice when it comes to Digital Signal Processing, Closed Loop Sensing in Production Environments, Signal Analyzers and a lot of embedded micro systems.

Assembly Language is a must for those who intend to go into Hardware design. Once you have a base in this, High Level Language transformation would be easy. The reverse case however is not true.
Re: Is Assembly Language Dead? by allonym: 5:56am On Jun 01, 2007
Maleeq:

When it comes to execution speed, nuttin rocks like ASM. That's why it's the choice when it comes to Digital Signal Processing, Closed Loop Sensing in Production Environments, Signal Analyzers and a lot of embedded micro systems.

Assembly Language is a must for those who intended to go into Hardware design. Once you have a base in this, High Level Language transformation would be easy. The reverse case however is not true.

The first statement is outdated by almost 10 years now and the second is a fallacy.

I work as a full time embedded systems engineer and have been studying this area for a while now, C is the dominant language for embedded development. Now, C++ is a making a run at it. Assembly has been on the decline ever since the first cross compiler was written. Learning assembly is still very useful, especially when it is coupled with learning how a microcontroller or processor works, how memory is managed, addressing modes. Having a base in assembly also makes understanding pointers very easy later on in C/C++ which is very critical as one starts developing complex structures.

As for the second statement - the amount of complexity you can achieve in assembly and still understand everything is limited. So, any good assembly/C programmer will always be able to make the translation into a higher level language. High level languages allow you to abstract many concepts. Even something relatively simple, such as casting a variable from one type to another can be pretty intense when you have to implement it in assembly yourself. Just try having to write the assembly code to handle type casting a floating point number into an integer on a micro without any floating point hardware. In C/C++, you can easily achieve 4-5 levels of indirection and you create objects and encapsulate their functionality and hide the inner workings of things in private functions. If you were to start out in assembly trying to do that, you'd lose your mind.

BTW, what do you mean by hardware design - there is digital design (ie designing stuff using logic gates), analog design (circuits that typically don't make use of digital logic), digital circuit design (you're using digital devices here as the primary functional elements), embedded system design (which could be mostly firmware but could also involve some digital and analog circuit design. . and a little digital design as well), and a couple others. But technically, all of that is "hardware" design. Once you're at the point where coding does not require any knowledge of the inner workings of the hardware, then it becomes "software" design.
Re: Is Assembly Language Dead? by Maleeq(m): 11:42am On Jun 01, 2007
allonym:

The first statement is outdated by almost 10 years now
Maleeq link=topic=6836.msg1060561#msg1060561 date=1177271026:

When it comes to execution speed, nuttin rocks like ASM.
Even though I stopped "Digital Systems" for sometime now, I know the fastest algorithm remain those written in ASM. C no doubt is fast, ASM is just faster. I guess you of all people(an embedded system engineer) should know that the result of these compilers are optimized to handle a wide(key point, wide) programming possibilities. The result, though effective, is not the optimal for all these possibilities.

Besides, I never said ASM is not on the decline. Anyone would welcome any option to get their jobs done easiest. Cos the majority are now using HLLs does not make the ASM extinct(Even if everyone stops, I would keep using it. wink) )

What has cross compilers got to do here? They dont necessarily make your codes execute faster, they only provide for build - to - target platform transformation.

allonym:

and the second is a fallacy.
Maleeq link=topic=6836.msg1060561#msg1060561 date=1177271026:

Assembly Language is a must for those who intend to go into Hardware design.
I still maintain this view. I am not talking about the hobbyists that pick up a do-it-yourself micro kit that already has a PC interface where you code in whatever language and just connect some external devices to the micro. I am talking about design right from the uP, Memory & I/O interfacing.
BTW, what language do you thing the BIOS on the computer you are using right now to read this was written in? You guessed right! ASSEMBLY.
- Device drivers have always been, and probably for always be written in ASM.


allonym:

As for the second statement - the amount of complexity you can achieve in assembly and still understand everything is limited.
The same applies to any programming language, high level or low level. This has to do with the individual persons using them. Its just like giving a newbie
in your "superior" C a 3D signal analyser program code and expect him to understand it cos it aint written in ASM!!!

allonym:

So, any good assembly/C programmer will always be able to make the translation into a higher level language.
Maleeq link=topic=6836.msg1060561#msg1060561 date=1177271026:

Once you have a base in this, High Level Language transformation would be easy. The reverse case however is not true.
My point exactly!

allonym:

Even something relatively simple, such as casting a variable from one type to another can be pretty intense when you have to implement it in assembly yourself.
I never said coding in assembly is an easy task. I know a lot of people that code in Basic(.NET) simply cos they find C/C++ too tough for them.
One thing I need to add again is that I never said assembly is the best approach to ALL programming problems. That's why I listed some of it's key areas
of use.


allonym:

BTW, what do you mean by hardware design - there is digital design (ie designing stuff using logic gates), analog design (circuits that typically
don't make use of digital logic), digital circuit design (you're using digital devices here as the primary functional elements), embedded system design
(which could be mostly firmware but could also involve some digital and analog circuit design. . and a little digital design as well), and a couple
others. But technically, all of that is "hardware" design. Once you're at the point where coding does not require any knowledge of the inner workings
of the hardware, then it becomes "software" design.
Thanks for schooling me there. Well, pick whichever you think ASM, C/C++ or any other language can be used. My pick - Analog Design grin
Re: Is Assembly Language Dead? by allonym: 5:43am On Jun 07, 2007
Maleeq:


Even though I stopped "Digital Systems" for sometime now, I know the fastest algorithm remain those written in ASM. C no doubt is fast, ASM is just faster. I guess you of all people(an embedded system engineer) should know that the result of these compilers are optimized to handle a wide(key point, wide) programming possibilities. The result, though effective, is not the optimal for all these possibilities.



I see what you're saying. I guess what I should have said was your statement holds true up to a certain point. Many algorithms developed now are either far too complex to be coded (by a human) in assembly or the assembly code that a compiler would generate from the high level language version would be just as good or better than any human could write. So, I think that the need to "know" assembly so that you can generate fast/optimum code is steadily decreasing. There are many reasons for this but here is the major one:

Engineers don't get paid (or hired) to solve problems that other people have already solved. We get hired to solve those problems that have no know solution.

I think the set of algorithms that are best hand coded in assembly belongs to the family of problems with known solutions. So, now, people are being moved towards other things and the utility of knowing assembly decreases.

LoL - I can imagine a similar discussion going on when coders started migrating from programming using RTL to using assembly.
Re: Is Assembly Language Dead? by Maleeq(m): 7:12am On Jun 07, 2007
allonym:


So, I think that the need to "know" assembly so that you can generate fast/optimum code is steadily decreasing. There are many reasons for this but here is the major one:

Engineers don't get paid (or hired) to solve problems that other people have already solved. We get hired to solve those problems that have no know solution.

Yeah, this holds true thanks to the advancement in processor technologies and compiler optimizations, the difference these LLLs and HLLs is steadily reducing to an insignificant level.
Re: Is Assembly Language Dead? by origen2g: 10:15am On Jun 11, 2007
If I were u (and I intend to be a good programmer) I'd advice you go for Assem prog.After all, it only adds value. wink
Re: Is Assembly Language Dead? by subayob: 12:58pm On Mar 23, 2010
With whatever reply we've had, the summary is that:

Any Language u have sits on Assembly to interact with the machine, so assembly is much more alive than any lang.

I use .Net

(1) (2) (Reply)

Principles Of Great Coding / Why I Left Android App Development Since Last Year. / A Little Tip For Notepad++ users Like Me.

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 52
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.