First of all, you should try to understand what a MCU is and how it works. Each MCU has a specific set of registers ans assemler statements to manipulate these registers.
As chips also have some kind of "evolution", the chance is fine that these basic things like adressing and manipulation of UART registers is pretty similar within one processor family, even if it is some older or newer modell within the "evolution tree".
Try to find some basic tools for your specific MCU (means: Assembler/Compiler, Linker etc), which mostly will be bundeled to an IDE (integrated Development environment)
The start to develop some "easy" assembler programms which might have some "minimum" function, like:
running in a loop
read some specific port bit
invert the bit and write this inverted bit to some specific output port bit
That enables you simply to test the function of your programm by VU-meter, or by adding an LED .
After you are a little bit more familiar in compiling - uploading (to MCU) - testing (the software) you might think about the planned functionality: modifying some specific routines so some specific behaviour.
--
by the way: "small program" in assembler language does not necessary mean: "simple program" ! Compare it with genomic manipulation: some changes or additions in the genom sequence of an animal, ant suddenly there is a second nose or some serious sickness - the same might also happen to some assembler code. Assembler Language is pretty "mighty" in its abilities, therefore you have to know what you are doing.