Is Assembly Language dead?
-
tisaracorner wrote:
But I sure it still has an importance in mission critical and real-time embedded systems
I would never write a mission critical system in assembler, that would be moronic. Assembler is far more fiddly and more likely to need bug fixing. embedded systems, perhaps, if they are really low level hardware. I'd imagine the main thing that uses assembler would be compilers.
tisaracorner wrote:
So what you think, learning the assembly language would be foolishness?
Yeah, unless you have a need for it, and unless you already know a few higher level languages really well, I'd say it's probably a waste of time.
Christian Graus No longer a Microsoft MVP, but still happy to answer your questions.
Christian Graus wrote:
Yeah, unless you have a need for it, and unless you already know a few higher level languages really well, I'd say it's probably a waste of time.
I think it is great way to learn performance issues and debugging. By coding assembly one can get a feeling what is going around below the higher programming language. So any serious developper, I would advise to invest 3 months of study in assembly language. For development, that's another story. I think its counter productive to use assembly language for any project. Except for some small very critical performance parts (and maybe os development), mostly can be done in speedy languages like c and c++. And even then one can question the performance gain. Compilers are in general very good in making optimized code. Intel made its IPP library to program in higher functions and shield implementation (use of mmx variants and so)
-
if you want to have anything to do with embedded systems it pays to know assembly language, because 9/10 times during a large project the chip specific compiler will create something wrong. i think assembly is one of the easier languages to code in, if you can draw a flow chart you can code asm, but on the other hand it is HORRID to maintain legay code that isnt yours. bad thing about asm is that it is quite different from chip to chip, from PIC to an H8 to a M16 will take a bit of adjustment.
-
That means if you can’t find a library for your immediate purpose you will make it in assembly language. Isn’t? What you feel its importance in developing new technologies like Bluetooth?
tisaracorner wrote:
That means if you can’t find a library for your immediate purpose you will make it in assembly language. Isn’t?
Not really, I would use assembly language only for small peices of code that I want to be ultra fast or ultra small or both. Remember that a complier turns each line of code into several lines of assembler. Sometimes, because the compiler does not have the specialist knowledge that the programmer has, it includes lines that are not required in that particular project. So by writing it myself in assembler I can keep my code to the absolute minimum ammount of machine instructions. I could even check the speed of various instructions and write the very fastest possible peice of code (that's good fun). But do not be fooled into thinking that all assembler is fast and small, even a medium sized project will be faster and smaller if written in a high level language. This is becasue a human cannot keep much code in their head at any one time, so their code quickly becomes as wasteful as a compilers, or even more so.
tisaracorner wrote:
What you feel its importance in developing new technologies like Bluetooth?
I use Bluetooth, but I use other peoples code to control it and I have no idea if it is written in assembler - sorry. I just use their libraries. My embedded systems have to control hardware and it is often time critical - that's really the only use for assembler I have these days. If you would like to try a bit of assembler have a look at the company Microchip, they make PIC processors which are really easy to get up and running, you just need a crystal and a power supply and there is loads of development kit available for them. You could write a small application (like flashing an LED) in C then re-write it in assembler. But only do it if you want to for fun :-D
Ali
-
killabyte wrote:
but on the other hand it is HORRID to maintain legay code that isnt yours.
Hell is other people's code :)
xacc.ide - now with TabsToSpaces support
IronScheme - 1.0 alpha 4a out now (29 May 2008) -
I've seen some +-300 ton presses programmed in assembly and Turbo Pascal so it would help to know it if you wanna go that route, However nowdays most stuff is controlled with PLC's that use FBD's... PS: Simatic S7 is a pain,
Quote: "PS: Simatic S7 is a pain" I second that ;)
Regards. -------- M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you “The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only!): Don't do it yet.” - Michael A. Jackson Rating helpfull answers is nice, but saying thanks can be even nicer.
-
In a scene computers have become fast to solve the performance issues. So why trouble ourselves in complexity of assembly language? But I sure it still has an importance in mission critical and real-time embedded systems. How much it is important in driver development and operating systems? So what you think, learning the assembly language would be foolishness?
One reason for the decline of assembler is the move from CISC (Complex Instruction Set Computer) to RISC (Reduced Instruction Set Computer) Typically old CISC CPUs would have hundreds of instruction, wheras a RISC CPU has far fewer, so, as a fictional example, a RISC CPU might not have a multiply instruction, forcing you instead to add the number to itself multiple times to get the same result. This means the RISC assembly code for a simple operation is far longer, and far less readable that the equivalent CISC code. (Note that the current x86 chips are a sort of CISC-RISC hybrid, where it gets even more confusing...)
Help me! I'm turning into a grapefruit! Buzzwords!
-
oh my are you the luckiest SOB coder ever?!?!?! if you havent worked with others code then i want your job haha
-
In a scene computers have become fast to solve the performance issues. So why trouble ourselves in complexity of assembly language? But I sure it still has an importance in mission critical and real-time embedded systems. How much it is important in driver development and operating systems? So what you think, learning the assembly language would be foolishness?
Assembly language can be helpful in cracking softwares etc the best tool i know is ollydbg ollydbg makes assembly really interesting
-
In a scene computers have become fast to solve the performance issues. So why trouble ourselves in complexity of assembly language? But I sure it still has an importance in mission critical and real-time embedded systems. How much it is important in driver development and operating systems? So what you think, learning the assembly language would be foolishness?
George_George keeps it alive [^], [^]. :-D
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
In a scene computers have become fast to solve the performance issues. So why trouble ourselves in complexity of assembly language? But I sure it still has an importance in mission critical and real-time embedded systems. How much it is important in driver development and operating systems? So what you think, learning the assembly language would be foolishness?
Learn it because it's fun, and gives you a deeper understanding about what is going on under the hood. Knowledge is never bad!
-- Kein Mitleid Für Die Mehrheit
-
tisaracorner wrote:
But I sure it still has an importance in mission critical and real-time embedded systems
I would never write a mission critical system in assembler, that would be moronic. Assembler is far more fiddly and more likely to need bug fixing. embedded systems, perhaps, if they are really low level hardware. I'd imagine the main thing that uses assembler would be compilers.
tisaracorner wrote:
So what you think, learning the assembly language would be foolishness?
Yeah, unless you have a need for it, and unless you already know a few higher level languages really well, I'd say it's probably a waste of time.
Christian Graus No longer a Microsoft MVP, but still happy to answer your questions.
Christian Graus wrote:
I'd imagine the main thing that uses assembler would be compilers.
Maybe this is a semantic issue, but a compiler generates (amongst other things) assembly code. There is little or no benefit in coding the compiler in assembly these days.
-- Kein Mitleid Für Die Mehrheit
-
George_George keeps it alive [^], [^]. :-D
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles]CPallini wrote:
George_George keeps it alive
I think he should get his own forum :) On the plus side, he does not ask stupid questions, just a helluva lot of them! ;P
xacc.ide - now with TabsToSpaces support
IronScheme - 1.0 alpha 4a out now (29 May 2008) -
George_George keeps it alive [^], [^]. :-D
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles]You made me laugh in my office. I like your character :-D
-
George_George keeps it alive [^], [^]. :-D
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles]Nobody can give you wiser advice than yourself. - Cicero .·´¯`·->Rajesh<-·´¯`·. Microsoft MVP - Visual C++[^]
-
Christian Graus wrote:
you already know a few higher level languages
I am experienced in few high level languages.
Christian Graus wrote:
unless you have a need for it
Not for any commercial purpose. To feel the happiness of create something :)
Surely you can find something more productive to do with your time. I imagine there are some small kudos with knowing assembler but I would think it has almost no commercial application. If you wrote something in assembler for a commercial app I would have you hung, drawn and quartered. Some poor bastard down the track has to support the app. So is it foolishness - absolutely!
Never underestimate the power of human stupidity RAH
-
I've seen some +-300 ton presses programmed in assembly and Turbo Pascal so it would help to know it if you wanna go that route, However nowdays most stuff is controlled with PLC's that use FBD's... PS: Simatic S7 is a pain,
TommyTomToms wrote:
Simatic S7 is a pain
Very much so.
Sig history "You're an idiot." John Simmons, THE Outlaw programmer "I realised that all of my best anecdotes started with "So there we were, pissed". Pete O'Hanlon Unix is a Four Letter Word, and Vi is a Two Letter Abbreviation
-
Learn it because it's fun, and gives you a deeper understanding about what is going on under the hood. Knowledge is never bad!
-- Kein Mitleid Für Die Mehrheit
Accidentally I found Randall Hyde’s art of assembly language and made me think like this. I felt HLA is easy to learn.
-
CPallini wrote:
George_George keeps it alive
I think he should get his own forum :) On the plus side, he does not ask stupid questions, just a helluva lot of them! ;P
xacc.ide - now with TabsToSpaces support
IronScheme - 1.0 alpha 4a out now (29 May 2008)leppie wrote:
I think he should get his own forum
Definitely.
leppie wrote:
On the plus side, he does not ask stupid questions
I agree.
leppie wrote:
just a helluva lot of them!
Without an apparent end (well he says it's for technical fun). :)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
Nobody can give you wiser advice than yourself. - Cicero .·´¯`·->Rajesh<-·´¯`·. Microsoft MVP - Visual C++[^]
:sigh: I should know something was missed :sigh: :-D
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles] -
In a scene computers have become fast to solve the performance issues. So why trouble ourselves in complexity of assembly language? But I sure it still has an importance in mission critical and real-time embedded systems. How much it is important in driver development and operating systems? So what you think, learning the assembly language would be foolishness?
I wonder what will happen when no one wants to learn assembler anymore and the people who know it today die of old age. :P Same goes for C, just in a more distant future. We have more and more high level languages (such as C#) which make the developers more productive and the coding experience is better, but those languages are also built on top of something else, i.e. there's always something below. Who will create the core parts when everyone deals with high level stuff?