Well I started with 8085 micro and had to program in hex code in 1983,in 1986 I got my hands on Turbo pascal and a PC XT. When 8031 micro controller came out I had no assembler (machine code again:-(.
But working on Turbo C in PC specially with Borland's documentation gave me the advantage so when I got the first Keil Cross Compiler on x51 in the 90s it was not a problem. See, same thing happened on VLSI design it was only in 2000 I started using Verilog HDL for design and verification after years of working in PALASM.
Learning C (you rarely need c++ for even the middle range ARM cortex)is not at all difficult but again if time does not permit you can-
1) Use your assembly language skills for DSPs, compilers are still very inefficient.
2) Though very rare, some times you need code optimization-here joining up with a C programmer may be effective.
Thanks to you all for your positive comments and advice. I think that, in the meantime, until I start in a gradute job that I will begin to look at the C language by using books/tutorials etc. However, I will continue to strengthen further my knowledge of assembly language.
I would add that I am particularly interested in intelligent power supplies (my final year project was based on it)..so I think there may yet be an area where I can apply myself as I have been speaking to persons who work in this field and I have been given good feedback about Assembly language and a wide range of other skills that are developed and used extensively in power supply design
Once again, thanks to all who replied.
I'm 'assembly only' so to speak too. I learned assembly back in the PDP-8 days, and then Z80, 68000, 6809, 8048, PIC, and so on.
I like to say that I don't know 'C' or any other high level language, but that's not quite true, I can muck my way through.
I do PIC projects here at work to support my hardware, and I almost HAVE to use 'C', but an assembly background helps a lot. Especially when you start looking for bugs in the compilers. (I've found maybe a dozen over the years, from stuff that should have been stable for years!)
But I've also gotten to do a lot of assembly. I did a 9S12 project with 256K of flash and filled it 100% (ok, there was managed data pages in the thing) And when I did a dll for IBM and shipped it to them, they sent me emails of 'where is it?' I said it was 'attached'. Took about 10 emails till they finally realized the 5K attachment was the whole thing, and not a 256K hog!
Keep with the assembly, but you will have to learn at least some of the higher language stuff.
It is certainly not the easiest path, my friend! But, I have never seen a C compiler that does not have a performance issue, let's not tell a compiling mistake. So, you need Assembler anyway. But, here is the trick, you need C and C++ too. But, you have not thought that you would stop studying when graduated, have you? If you did, welcome to reality!!!! For 12 years, I've never really stopped learning something, either on my own or in courses. So, my advice, choose one of the infinite books/tutorials in C, and start your carreer!!
I program 95% C/C++ and 5% assembler on many embedded projects.Assembler is still used in some small projects. You will still use some assembler language, but it seems you are going to need to learn C/C++ or the like. In the long run you will enjoy C and will be glad you know it. Good luck
It's not a catastrophic mistake as I believe you can learn C in no time, but it's still a mistake from an academic point of view IMO. Academics' job is to expose you to the big picture and teach you how to think and make choices for yourself, not indoctrinate you and force you to think in a certain way. As such you should have been "exposed" to higher level languages as it's a different way of approaching problems. In any case, it's certainly not an either-or in my opinion. One module using a higher level language would have been enough while the original ethos of teaching Assembly to make you see the hardware implications clearly, could have been preserved.
It is a shame that your university did not provide you with the normal set of language tools. Assembly is a great way to understand how the machine works at its most basic level, but learning C++ (or Java or C#) in school would have better prepared you for programming properly. All that said, go learn C on your own there are a lot of great books and online resources. Not the end of the world but an opportunity lost (by the school).
You are definitely well prepared. However, in resume, you donít want to write this one only. You will write what you did with Assembly language. In this market, they will hire you. Show them what they may see a value. None has all of skillset what employer wants. When they list a various programming languages, c/c++, java, Pascal, Ada, x86/strongArmAssmebly, none one know them all. They are checking out candidate pool.
Stand out from that pool by expressing what you did and how you did. You will get a job very soon.
With your assembly language knowledge, you have a solid basis in how CPUs actually work. This is valuable no matter what language you eventually use.
For example, what happens if your C compiler makes code that doesn't work the way you expect? For an assembly language programmer, it's fairly easy to have a look at what the compiler produced and check where things went wrong.
Also, when you get into a situation where compiled code is not performing well, the knowledge of how CPUs actually work is indispensable for figuring out a better approach.
With all that said, you need to take up something like Perl on your own as soon as possible. I use it a lot, it's fun!
Blog That A-Ha Moment Larry Desjardin 10 comments Have you ever had an a-ha moment? Sure, you have. The Merriam-Webster dictionary defines it as "a moment of sudden realization, inspiration, insight, recognition, or ...