English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
All categories

Do I really need to know C/C++ before I jump into ASM? I would like to start programming on lower level instead of using higher level languages like C or Java.

I don't know a thing about ASM and where to start. So if you could please give me advice on where you think I should start it would be greatly appreciated.

Also any tips or other things you learned over the years that you think I should know would be appreciated as well.

Thanks in advance.

2007-06-30 17:54:51 · 6 answers · asked by jack 6 in Computers & Internet Programming & Design

I would like to learn it for electronics, programming for micro controllers and such.

2007-06-30 18:07:37 · update #1

Thanks for all the great answers.

Yes, I do have a understanding on the fundamentals of procedural programming like Varaibles, Loops, Arrays, Link lists, Functions, etc. But very few in OOP(because I never really fooled with it).

I am aware of PIC programming and the use of a basic syntax for micro controllers.

Like mentioned above ASM uses alot of different architectures. I don't know where to start learning. I thought x86 would be best but since 64 bit is gaining speed should I even fool with it?

2007-06-30 19:47:54 · update #2

6 answers

As others said, you don't need to know C/C++. However, you will need to know SOME programming. You will need to understand loops, variables, and basic concepts like that. Then you will 'get' registers, program counters, and indirect vs. direct addressing and all that. If you have no background at all, assembly may overwhelm you, or you may get it directly. One can never know until you try it.

EDIT: Most microcontrollers now have compilers written for them so they will do higher-level languages (so to speak). Some even run BASIC directly (i.e. BASIC Stamp) and there's a whole FAMILY of microcontrollers. PIC is probably most famous, but the Intel 805x's aren't far behind.

I learned 6805 assembly on a Tandy CoCo (if you can remember that far back!) and later 808x assembly on the PC with some other programming stuff. It was fun but a lot of work as a lot of people can't adjust their thinking to think that way.

2007-06-30 18:18:04 · answer #1 · answered by Kasey C 7 · 0 0

Unless you are writing an operating system, you can probably get something working quicker using C. Many C compilers also allow you to insert inline "asm" code, so you would only need to know a little assembly. If you like to learn by looking at examples, then take a look at the source code for linux or Solaris.

2007-06-30 18:41:57 · answer #2 · answered by Wuller D. Wust 2 · 0 0

You do not strictly need to know C, but it really helps. C was designed to be as close to assembly as possible, yet readable and structured. So learn the basics.

For assembly, you need to pick the flavor: x86, sparc, hp-pa, itanium, ARM. each CPU architecture has its own assembly language.

Though x86 is most popular, x86 assembly is quite difficult to learn and get it right.

Note that some c++ programming environments, such as Microsfot Visual C++ 6.0 (a product from 10 years ago) allowed inline assembly. That's easier: you do the tough stuff in C and pass data to the assembly section where you can manipulate it.

2007-06-30 19:23:51 · answer #3 · answered by Anonymous · 1 0

Don't push too hard!!

ASM is very fast and powerful but not advisable for beginners.

If you want to program micro controllers I advise u to Look for PIC programming. You have kits for these chips that allow u to code in C or BASIC.

2007-06-30 19:20:58 · answer #4 · answered by Anonymous · 0 0

You don't need to know one of those languages specifically, however, it would be very advantageous to know another language first. While there are several concepts that don't directly transfer, most parts of formal program design are allot clearer in the higher level languages, as assembly often lends itself to hacks. This being said, you might just want to look into a basic or C/C++ compiler for microcontrollers, as they've become very popular of late. There are also several higher level languages written specifically for microcontrollers.

2007-06-30 18:15:45 · answer #5 · answered by Matt M 1 · 0 0

The more programming experience you get, the more likely things will fall in to place for you. Assembly is ubercomplicated and you can screw up real easy. Besides, what would you need ASM for???

2007-06-30 17:57:59 · answer #6 · answered by Anonymous · 0 1

fedest.com, questions and answers