Hello, and thanks for your interest.
After doing some research, I seem to believe that in order to program the ATmega328p on my Arduino Uno using Assembly, I just need to use Atmel Studio 7 (to produce the hex file), and AVRdude to upload it to the MC.
My question is: Is this really true?
And if so, do I need to take any precautions?
If you must know (and I'm sure you want to), I want to program using Assembly Language because I'm going to develop a couple of projects that:
a) Are time-intensive.
b) Really could use the ADC Noise Reduction mode.
With Assembly I can know for sure how much time each instruction is going to take in order to be executed, and I also believe that when the Arduino Uno uses the ADC for measuring, it doesn't activate the ADC Noise Reduction mode (I'm not 100% sure about this, and if this is not the case, please correct me).
I know more or less how to use Assembly, but I learned with the PIC 16f628a, so I'm not just quite prepared yet for programming the ATmega328p with Assembly, but I'll get there (after I finish reading the 600+ pages of the datasheet). What I'm trying to say here, is that I'm positive that I want to use Assembly for these couple of projects.
I believe that you perhaps could recommend me to get an ATmega328p and a programmer (like a USBasp) separately, instead of trying to use the Arduino Uno for programming with Assembly. Sadly, I live in a wonderful land called Venezuela, where getting electronic parts is really difficult, being that either things cost 3 or 4 times more than, say, in the US; or simply I can't find them here. And trying to bring an ATmega328p and USBasp from the US, is currently not an option.
Please, be as detailed as you can with your answer.
As a side note, I'm not in any way, shape or form saying that programming the ATmega328p with Assembly is better. I believe that Arduino's languange is wonderful in many ways, specially in ways that Assembly isn't (starting from the fact that Assembly is way harder to learn). I actually believe that the best thing to do is to learn both languages, and to be able to recognize when a language suits better a certain project.
Thanks in advance for your time, help and knowledge.