Assembly will never die

Thread Starter

cmartinez

Joined Jan 17, 2007
8,848
I find it kind of depressing that Assembly is becoming a kind of a lost art among newcomers to the industry. MCU's have gotten so fast and so powerful, that for most projects limitations regarding capacity and performance has ceased to be an issue. And so noobies are being drawn to easier to learn, and quicker to implement high level languages, But I believe that there are still many applications out there (especially for commercial gadgets and devices) that require the maximum possible optimization of resources to be economically viable. And only assembly is capable of that.

 

WBahn

Joined Mar 31, 2012
33,087
Of course there will always be applications for assembly language. If nothing else, the last jump in going from any high level language to executable code will almost always go through assembly language. And most processors have numerous features and instructions that can't be accessed via a high level language, so compiler and operating system developers have to deal with those via assembly. That assembly isn't being learned by noobies and, therefore, they aren't ready to do those demanding tasks isn't, by itself, an issue. They were never at a point to do those things as newbies, whether they "knew" assembly or not. That just means that those tasks are moving further into the realm of experienced developers which, in reality, they always were. What I am concerned about is that newbies, both hobbyists and students studying engineering and science, aren't getting the exposure to the underlying fundamentals of their craft, which will hamper them in eventually becoming those experienced developers down the road. It won't just be a matter of having to pick up assembly language at that point in time, but of a lack of the ability to understand and think about things at the needed level. Some will be able to overcome that deficiency, and become extremely valuable and highly compensated as a result, but most will flounder and not go any further -- and most of them will have no desire to do so, anyway.
 

Thread Starter

cmartinez

Joined Jan 17, 2007
8,848
What I am concerned about is that newbies, both hobbyists and students studying engineering and science, aren't getting the exposure to the underlying fundamentals of their craft, which will hamper them in eventually becoming those experienced developers down the road.
Exactly ... my concern as well
 

joeyd999

Joined Jun 6, 2011
6,449
The old art, like Rock & Roll, won't die.

It will (has?) become niche, and those of us who practice it will continue to be rewarded in our own unique, chosen way.

 
Last edited:

Rf300

Joined Apr 18, 2025
122
Some decades ago in the times of good old 8051, 8086, PIC and so on, it was really simple to write assembly code due to the simple architecture of those processors. Even a moderately skilled programmer could write an assemply program which was smaller and faster than a C program.

With modern architectures like ARM Cortex it is much more difficult to write good assembly code because you have to take into account things like pipelined register and memory accesses which may lead to penalty wait states and so on. Also the assembly language of an ARM Cortex is much more complicated and has more options than good old 8086 assembly. Nowadays the requirements for software are much higher (GUIs, touc screen interaction, ...) than 40 years ago. Therefore it is absolutely ineffective to write these things in assembler.

So assmembly language now has its justification and niche in areas where it is really needed like task management in operating systems or where you really need processor specific features.
 

Ian0

Joined Aug 7, 2020
13,238
Some decades ago in the times of good old 8051, 8086, PIC and so on, it was really simple to write assembly code due to the simple architecture of those processors. Even a moderately skilled programmer could write an assemply program which was smaller and faster than a C program.

With modern architectures like ARM Cortex it is much more difficult to write good assembly code because you have to take into account things like pipelined register and memory accesses which may lead to penalty wait states and so on. Also the assembly language of an ARM Cortex is much more complicated and has more options than good old 8086 assembly. Nowadays the requirements for software are much higher (GUIs, touc screen interaction, ...) than 40 years ago. Therefore it is absolutely ineffective to write these things in assembler.

So assmembly language now has its justification and niche in areas where it is really needed like task management in operating systems or where you really need processor specific features.
The ARM is a RISC processor REDUCED instruction set. The 8086 isn't. ARMs have fewer instructions than 8086s.
Arm Cortex M0 has 56, 8086 has 81.
I've written lots of code for ARM Cortex, and pipelines and wait states have never even crossed my mind. It's no different to writing for an ATMega, except you no longer have to deal with carries and borrows when your arithmetic exceeds ±127.
 
I can imagine the script of a futuristic dystopian movie.

“Once that his kids were safely tucked in bed, John went down to the basement. His wife was washing the dishes and silently glanced at him, with that look on the face of spouses who know better than to ask questions best left unanswered.”

“John gingerly removed the cover from a boxy plastic and steel artifact with the label in stylish letters: IBM. John punched a button and the monster came to life, his heartbeat consisting of different whirring noises. Suddenly, the glass screen, which had been totally dark, sprung to life, showing the cryptic message:
Starting MS-DOS….
C:\>ver
MS-DOS version 6.22”

“John let out a loud sigh of relief. The old trusty computer was still alive. Over 60 years after it had been assembled in a sprawling factory in Boca Raton, Florida. But for how long? Nobody could tell him with full confidence.”

“John knew he was working on borrowed time. So after pulling a long drag from his laser-sublimating E-cigarette, he said casually, perhaps to the Bill Gates photo hanging in a corner of the semi-darkened room; ‘Let’s go man, we have some assembly code to write tonight’ and started furiously clicking on the ancient keyboard, where the label on the ENTER key was just barely visible.”
 

dl324

Joined Mar 30, 2015
18,451
I learned assembly languages for 8080, 6800, PDP-11, and VAX 11/780 and have forgotten just about everything I supposedly learned because I never really needed to use them.
 

Rf300

Joined Apr 18, 2025
122
Arm Cortex M0 has 56, 8086 has 81.
Cortex M0 is the simplest of all Cortex processors and was never successful. Cortex M4 has about 104, without DSP instructions. And the adressing modes are much more complex. I think the differentiation between RISC and CISC is meanwhile obsolete, since even "RISC" processors now hav a very complex instruction set.
 
Top