Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Is Assembly Language dead?

Is Assembly Language dead?

Scheduled Pinned Locked Moved The Lounge
hardwarealgorithmsperformancequestionlearning
46 Posts 29 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T tisaracorner

    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?

    P Offline
    P Offline
    Pawel Krakowiak
    wrote on last edited by
    #33

    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?

    L 1 Reply Last reply
    0
    • P Pawel Krakowiak

      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?

      L Offline
      L Offline
      leppie
      wrote on last edited by
      #34

      Pawel Krakowiak wrote:

      I wonder what will happen when no one wants to learn assembler anymore and the people who know it today die of old age. [Poke tongue] 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?

      Sounds like it's straight from http://www.johntitor.com/[^] ;P

      xacc.ide - now with TabsToSpaces support
      IronScheme - 1.0 alpha 4a out now (29 May 2008)

      1 Reply Last reply
      0
      • T tisaracorner

        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?

        E Offline
        E Offline
        Ennis Ray Lynch Jr
        wrote on last edited by
        #35

        Assembly for the masses has been dead for a long time, however it will likely never go away as it is crucial for underlying performance in graphics, compiler writing, and many systems oriented tasks.

        Need a C# Consultant? I'm available.
        Happiness in intelligent people is the rarest thing I know. -- Ernest Hemingway

        1 Reply Last reply
        0
        • T tisaracorner

          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?

          N Offline
          N Offline
          Nemanja Trifunovic
          wrote on last edited by
          #36

          tisaracorner wrote:

          So why trouble ourselves in complexity of assembly language?

          Actually, assembly is the simplest programming language there is.

          tisaracorner wrote:

          So what you think, learning the assembly language would be foolishness?

          Depends on what you are doing. I don't write any assembly these days, but when I debug I almost always use assembly view even if I have the symbols - it is pretty much the only way to know for sure what is going on.

          Programming Blog utf8-cpp

          1 Reply Last reply
          0
          • L leppie

            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)

            D Offline
            D Offline
            Dan Neely
            wrote on last edited by
            #37

            leppie wrote:

            Hell is other people's code [Smile]

            mmmm sigbait. May I?

            Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

            1 Reply Last reply
            0
            • L LittleYellowBird

              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

              D Offline
              D Offline
              DaveyM69
              wrote on last edited by
              #38

              Alison Pentland wrote:

              Microchip, they make PIC processors

              I regularly program PICs and design hardware for them to run in to interface with other hardware including computers. I ALWAYS use assembly for coding with PICs. I've tried various flavours of C and even Basic, but I find it far more intuitive to keep the code as low level as possible when the purpose is really to control hardware. This probably applies to programming on the PC too. If you're communicating with or controlling hardware then assembler is probably the best tool - but if it's talking with the OS or providing a GUI, a higher level language is going to do it far better. An ongoing project of mine is to write a C# style interface for programming PICs - one day it might get finished!?!

              Dave

              L 1 Reply Last reply
              0
              • D DaveyM69

                Alison Pentland wrote:

                Microchip, they make PIC processors

                I regularly program PICs and design hardware for them to run in to interface with other hardware including computers. I ALWAYS use assembly for coding with PICs. I've tried various flavours of C and even Basic, but I find it far more intuitive to keep the code as low level as possible when the purpose is really to control hardware. This probably applies to programming on the PC too. If you're communicating with or controlling hardware then assembler is probably the best tool - but if it's talking with the OS or providing a GUI, a higher level language is going to do it far better. An ongoing project of mine is to write a C# style interface for programming PICs - one day it might get finished!?!

                Dave

                L Offline
                L Offline
                LittleYellowBird
                wrote on last edited by
                #39

                DaveyM69 wrote:

                I ALWAYS use assembly for coding with PICs.

                I can completely understand that. I generally use C but it really frustrates me that the compiler does not always do things the way I would and I find myself trawling through the listing file to check what code it has generated. This was particularly bad for me when I first started writting embedded C. Now I am a bit more relaxed, but I still prefer assembler in many ways. My main problem with assembler is that I miss the libraries, things like floating point arithmetic and printf are sssooo handy. ;) But the main reason I have answered you is that its great to know there is another PIC programmer out there on Code Project :cool:

                DaveyM69 wrote:

                C# style interface for programming PICs

                :cool: Best of Luck :cool:

                Ali

                D 1 Reply Last reply
                0
                • T tisaracorner

                  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?

                  K Offline
                  K Offline
                  Kythen
                  wrote on last edited by
                  #40

                  You're correct in that it's rarely used for any commercial development anymore, but by no means is learning assembly foolish. It can be incredibly useful when debugging, as you can see exactly what *is* going on and not just what the source-level debugger *says* is going on. Not to mention you won't always have source code or symbols available when debugging. If you want some good examples of this, check out Mark Russinovich's blog[^]

                  1 Reply Last reply
                  0
                  • L LittleYellowBird

                    DaveyM69 wrote:

                    I ALWAYS use assembly for coding with PICs.

                    I can completely understand that. I generally use C but it really frustrates me that the compiler does not always do things the way I would and I find myself trawling through the listing file to check what code it has generated. This was particularly bad for me when I first started writting embedded C. Now I am a bit more relaxed, but I still prefer assembler in many ways. My main problem with assembler is that I miss the libraries, things like floating point arithmetic and printf are sssooo handy. ;) But the main reason I have answered you is that its great to know there is another PIC programmer out there on Code Project :cool:

                    DaveyM69 wrote:

                    C# style interface for programming PICs

                    :cool: Best of Luck :cool:

                    Ali

                    D Offline
                    D Offline
                    DaveyM69
                    wrote on last edited by
                    #41

                    Alison Pentland wrote:

                    its great to know there is another PIC programmer out there on Code Project

                    :-D

                    Dave

                    1 Reply Last reply
                    0
                    • T tisaracorner

                      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?

                      P Offline
                      P Offline
                      Paul Conrad
                      wrote on last edited by
                      #42

                      tisaracorner wrote:

                      So what you think, learning the assembly language would be foolishness?

                      No. There are still times where hand optimizing code is still better than a compiler, however, it is not as wide as a gulf as it used to be. In places where speed and performance is absolutely crucial, it is still good to know it.

                      "The clue train passed his station without stopping." - John Simmons / outlaw programmer "Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon

                      1 Reply Last reply
                      0
                      • L leppie

                        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)

                        P Offline
                        P Offline
                        Paul Conrad
                        wrote on last edited by
                        #43

                        leppie wrote:

                        he should get his own forum

                        Introduce him to his board at the bottom of his profile :-D

                        "The clue train passed his station without stopping." - John Simmons / outlaw programmer "Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon

                        1 Reply Last reply
                        0
                        • T tisaracorner

                          Accidentally I found Randall Hyde’s art of assembly language and made me think like this. I felt HLA is easy to learn.

                          P Offline
                          P Offline
                          Paul Conrad
                          wrote on last edited by
                          #44

                          tisaracorner wrote:

                          HLA is easy to learn.

                          That's his intentions. Once you have an understanding of the basics, then move onto 80x86 assembly. Bear in mind that MASM, is nowadays integrated in Visual C++/Visual Studio...

                          "The clue train passed his station without stopping." - John Simmons / outlaw programmer "Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon

                          1 Reply Last reply
                          0
                          • T tisaracorner

                            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?

                            J Offline
                            J Offline
                            Joe Woodbury
                            wrote on last edited by
                            #45

                            I love assembly, but haven't used it since writing some bootstrap code for a PowerPC embedded environment about six years ago. I stopped writing 80x86 assembly in the late nineties when I was able to craft C code to run at 90% the speed of the assembly code. To be fair, though, I was only able to do this by understanding assembly code and how the optimizer worked. My guess is, though, that a really good C/C++ optimizer could have made the code run faster by reordering instructions. This last point is the the real bugaboo of assembly--code for modern CPUs can be optimized in ways that are rather complex to understand and which make the assembly code difficult to understand. Still, there's a feeling of control when writing algorithms in assembly that is rarely equaled in any other language. (I occasionally experience that in C/C++, but rarely in C#; a big reason I've realized my time in the computer programming field is coming to an end. It's not that I can't write very good code in high level languages, but that it bores me.)

                            Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke

                            1 Reply Last reply
                            0
                            • T tisaracorner

                              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?

                              J Offline
                              J Offline
                              John M Drescher
                              wrote on last edited by
                              #46

                              We have one algorithm in our code that needs to convert millions of floats to ints. It does this in two assembly statements and this used to speed up the code by 10X or so. The reason is the C++ float to int is defined to truncate while the hardware rounds so in software the rounding is undone in 100+ assembly instructions to make it C compliant. For our graphics application it is not important weather it rounds or not and we don't want it to throw exceptions so this code is still in place.

                              John

                              modified on Monday, July 21, 2008 3:20 PM

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups