It isn't any fun. The Assembly we're doing is with MIPS, so there's system calls to get input/print input. However the hard part is pointer management in the loops and such. One wrong command somewhere can ♥♥♥♥ up the entire thing.
In my belief, low level programming languages should disappear altogether (like C and Assembly). The only reason they should even exist/be used is if you're making system tools or other programming languages (even that you can do in other languages, though I personally write unix tools in C).
High level programming languages are much more easier to use/deal with. Though I do acknowledge that when working in a limited hardware environment that low level languages are needed. Hopefully things change and these limited environments upgrade into larger spaces.
Some of these practicals in university are retarded. My prof wanted us to take user input and turn it into a linked list. Then sorting that linked list. In ASM. He was surprised when no one finished in the allotted time.