Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

regarding Microcontroller programming in assembly

Not open for further replies.


Newbie level 6
Sep 15, 2009
Reaction score
Trophy points
Activity points
is it necessary to learn assembly language for microcontroller programming.
Please tell some sources for learning the assembly lang...
What are the software and hardware requirements for programming a microcontroller in assembly lang?
do different architectures have different assembly language syntax?

which microcontroller do you want to learn?avr or PIC...
I think that for learning assembly you should choose PIC microcontroller if you are a beginner.The best software(compiler) is MPLAB (for PIC).

if i want to program a microcontroller PIC and i am using MPLAB IDE on my pc then what are the hardware/connections required to connect the PIC microcontroller to my PC for programming.And then after my device based on microcontroller is ready and i want to control it using my PC then what modules are required.

Actually you won't need to learn assembly to program a microcontroller, you have the option to use C, BASIC or even there is a compiler now for PASCAL for microcontrollers, unless you want to learn assembly of a certain microcontroller.
when you download MPLAB IDE from microchip website you will find inside it MPASM, it is assembler for PIC microcontrollers.
you can use MPLAB C18 (Academic version free), a C compiler for PIC16/18 families or you can use MikroC another C compiler for PIC from "Mikroelectronika".
also from this company you will find two another compilers called MikroBASIC and MikroPascal.
go ahead and discover this world, don't limit your options and learn everything possible.

As elrayes said, you don't need to learn assembler given the range of languages available for microcontrollers (even the smallest ones - I've written C for TinyAVRs with 1KB of flash and no SRAM...).

However, I'd expand on that to say that whilst you don't *need* to learn it, you'll almost certainly benefit from doing so anyway. Even if you never write any assembly language code yourself - and it's been several years since I last did so - it's seriously useful being able to read the assembler output from a compiler and understand how much work the microcontroller is being asked to do for each line of C, Pascal etc. Especially when you can't figure out why what looks like perfectly valid higher-level code isn't doing what you expect it to do - some compilers may only generate correct assembler if you structure your own code in a certain way, generating total garbage otherwise...

Also, when you come to run your code in a debugging environment, there are times when it's difficult if not impossible to do what you need to do without dropping down into the disassembly view of the code.

And of course, if you do understand assembly language well enough to do the above, you'll be a lot closer to understanding it well enough to write it yourself on those occasions when you're stuck with target hardware which doesn't have quite enough memory or processing power to do what it needs to do whilst also coping with the overheads incurred by the compiler.

Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to