I've been writing assembly code for 40 years and x86 code since late 1983. I've also been maintaining custom 8088 code for embedded instruments until quite recently (2008.) I also maintain proficiency with x86 assembly code, as I write various small assembly programs for teaching others, continually.
I also have written, many times, serial port code in assembly. I'm familiar with the 8259 interrupt controller and the 8250 serial controller (as well as the FIFO buffered 16550/16552/16554 chips) and have repeatedly written code targeting them for serial port routines.
Four logical sections are usually involved: the low level Rx code to handle receive interrupts, the low level Tx code to handle transmit ready interrupts, the high level Rx code where main code is allowed to access the receive buffer data, and the high level Tx code where main code is allowed access to the transmit buffer (and which may need to restart the transmit process.) Some details are involved in recognizing and managing the interrupting events, too.
You don't mention if the serial routine involves the above things, but past experience suggests it to me.
Anyway, sounds like fun. I just finished another all-assembly project on a PIC18 device about a month ago. I enjoy writing assembly code a lot.