Is arduino IDE capable of uploading assembly code to the programmed board? If it isn't, which software should I use?
After a little bit of preprocessing, the .ino files of the Arduino IDE's sketches are C++. You can add inline assembly to your sketch code by wrapping the assembly in asm(). However, I don't think that's what you're interested in. What might be more interesting to you is that the Arduino IDE does allow you to add assembly files (.S) to your sketch. You still need to have at least one .ino file in the sketch, but you can have as much assembly as you like in additional .S files added to the sketch. Here is a simple demonstration of doing that:
https://forum.arduino.cc/index.php?topic=413151If you don't want to deal with the .ino file, you will not be able to use the Arduino IDE. However, you can use the avr-gcc compiler that comes with the Arduino IDE to compile your assembly into a .hex file you can upload to the Arduino board. You can see the compilation commands the Arduino IDE generates by enabling
File > Preferences > Show verbose output during: compilation, compiling a sketch (preferrably with a .S file) and then examining the contents of the black console window at the bottom of the Arduino IDE window (scroll up to see it all). You can copy those commands, modify them as you like, and run them from the command line.
Is the existing bootloader on the programmed board a barrier to upload assembly code on the board?
No.
how can I get rid of it?
The Arduino IDE has a feature:
Sketch > Upload Using Programmer. The upload command for Upload Using Programmer will erase the bootloader. You can see this command by enabling
File > Preferences > Show verbose output during: Upload, doing an Upload Using Programmer, and then examining the contents of the console window.
If it's possible to program the board directly, without using another arduino as a programmer, it also would be great.
For that, you do need the bootloader. The Arduino IDE will upload via the bootloader when you do a standard upload (Sketch > Upload) You can see this command by enabling
File > Preferences > Show verbose output during: Upload, doing an Upload, and then examining the contents of the console window.