I would try to avoid coding in assembler, and if possible adapt an existing C compiler to your target processor.
With GCC you have a lot of targets which could inspire you for your processor, and there are lots of documentation for that (see references in http://gcc-melt.org/docum.melt for more). Indeed it requires some effort (months of work).
Wide (but fixed size, e.g. two native
ints -wide, such as 64 bits arithmetic on processors with 32 bits-wide words) arithmetic is done in GCC inside its libgcc/ directory, and most of that is coded in C (but depends a lot on how your GCC is configured and targeted). Even if you don't use or port GCC to your architecture (and I believe you really should), that
libgcc should be inspirational (and IIRC, some books by Knuth explain the underlying algorithms, most of them being fairly intuitive.). Read also wikipage on fixed-point arithmetic.
If you want arbitrarily large integers, you need a bignum library. Don't reinvent your own (there are many tricky algorithms more efficient than the naive way you have learned at school, and you'll find several books and many research articles and conferences on the subject; you still can get a PhD on bignums and spend a full work life on them). Use an existing one, e.g. GMPlib.
Even for your own target processor, you should not code much in assembler. You'll better port some existing C compiler to it (and practically you need one, if you want your processor to be used).