There are plenty of books on ARM 7 & 9 Assembler, try Amazon
http://www.amazon.com/s/ref=nb_sb_ss_i_ ... y+languageOr plenty of material on the interwebs
http://www.google.com/#q=arm+assembly+languagehttp://www.google.com/#q=arm+assembly+tutorialNot sure if you're stuck on GCC, Keil and IAR compilers (Demo/Eval) come with plenty of code examples of various types, and for various ARM7 platforms, that might be instructive.
Also what is your latency requirement for the timer?
Consider using the FIQ for critically fast routines.
Consider why your USART interrupt is take so long as to be a problem. You should be able to service a USART interrupt fairly efficiently, say less than 50-100 cycles.