There is plenty of books, reference manuals and other documentation. I'd say there is so much it's easy to get lost.
Apart from books, there is also GCC.
GCC is pretty much the standard for all ARM processors, and it does not compile directly to binaries, but outputs assembly, which is assembled in the next (automated) step.
GCC has options for preserving these intermediate steps, and it can even write listings to disk in which each line of C (C++) code is followed by the assembly that is generated from that line of code.
This is a great feature for a lot of things. You can use it to find GCC bugs, learn about GCC's internals (such as what different optimization settings do) and of course also for learning assembly.