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.
  • 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