Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Assembly Language for electrical engineering

  1. May 23, 2007 #1
    I am an undergraduate student and I believe that I will probably major in electrical engineering. So my question is should I take the time to learn x86 assembly? I already know how to program in C++ well enough, but I really haven't done much with asm. I would like to get a microcontroller and play around with it, but they're too expensive, and I don't know if knowledge of asm would be a benefit or not.
  2. jcsd
  3. May 23, 2007 #2
    How about program on a calculator like the ti-89 or 86 which has a x86 platform.
  4. May 23, 2007 #3


    User Avatar
    Gold Member

    You probably wont be using it a lot. There is only a small market niche for asm programmers. You will be better off investing your time is learning a scripting language. See this/
    Because EE is such a broad field, it also depends on what you wish to specialize in. Maybe you'll design your own hardware and write device drivers to interface it with computers. Then you'll need to know your assembly. Or maybe you'll want to do embedded systems programming on a very low level, then you'll need assembly...

    I'm studying computer engineering, with emphasis on computer controlled hardware design. And as you've guessed it, I need to use asm for some low level stuff.

    Also if you're gonna take a course in computer architecture, asm comes hand-in-hand with this.
  5. May 23, 2007 #4


    User Avatar

    Staff: Mentor

    I use a mix of assembly and C, and scripting languages (like Tcl/TK) as Ranger mentions. I think it's good to at least do a little assembly language work, since it helps you to better understand what goes on at a lower level in organizing your register accesses and how to work with a stack. It also is great for helping you to learn to use real-time interrupts and perform real-time tasks.

    I wouldn't learn x86 ASM, though. I'd choose one of the popular small microcontrollers (uCs) that are available, like a PIC18F4455 or similar, and do some mixed C + ASM hobby projects on an inexpensive demo board. Check out the Microchip website for more info on PIC programming resources and demo boards.
  6. May 23, 2007 #5


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    Many simple microcontroller kits are not expensive at all. You can probably find a simple PIC microcontroller kit at RadioShack for perhaps $20-$50. If you need pointers for specific model numbers, etc., let us know.

    I agree that I wouldn't bother learning x86 assembly -- in practice, there's almost no conceivable reason for an EE to be programming in x86 assembly. If you're just looking for something useful to learn to get ahead in your studies, consider doing some digital logic with 7400 series ICs on a breadboard, or learning MATLAB, or learning PSpice.

    - Warren
  7. May 24, 2007 #6
    I must say that I have to disagree with most of the answers above, Learning assembly has a lot of benefits for anyone interested in programming or computer architecture, see learning assembly maybe the goal but on your way to do so, you will pickup a few good skills, some of which are numbering systems, understanding of a certain CPU architecture, memory addressing....etc.

    So although I think that learning a scripting language is very useful, it's a weekend project rather than a two month one which I think learning assembly is.

    Also if I where you I'd prefer learning MIPS assembly it's easier and it'll introduce you to more architecture concepts than a 8086 (which I assume is what you will begin with).
  8. Jul 3, 2008 #7
    Go to Intel and read their manual. Whether it is worth your while learning an assembly language depends on your interests, your job, and the people you will be working with. If you are working with engineers building embedded systems, or designing embedded system yourself, I’d say it would be a very good idea to be familiar with the assembly language of the microcontrollers that you or they are working with.
  9. Jul 3, 2008 #8


    User Avatar

    i think i 2nd what abdo says. just so that one learns more deeply how a system works, how instructions are fetched, pipelined, decoded, executed, how the CPU interacts with the peripherals, i think that one learns that more intimately with asm, rather than a high level language. EEs should have some idea what happens with a assembler/compiler, linker, stdlib, etc. how the low-level code is built. they should also have some idea how code is loaded with the monitor and control transfered to the loaded code. all those are good things for an EE to know about.

    but i wouldn't wanna do it in x86 asm. ick. in my day, it was the Motorola asm that was prefereable. now i dunno what chip would be the best learning example. MIPS? i dunno it.
  10. Jul 3, 2008 #9


    User Avatar

    Staff: Mentor

    Necrophilia :rofl:
  11. Jul 3, 2008 #10
    And you might also try the Digikey website to buy one.
  12. Apr 10, 2010 #11
    If you have real interest in microcontrollers, and you want a career in that specialization, knowledge of assembly level programming will definitely benefit you. But Electrical Engineering as of today is a very vast and diverse field, and computer is just a 0.00001% of it as far I know.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook