I have a task where I need to take a number, e.g. 13002, and print it digit by digit using UART (including non-leading 0's). The UART expects that whatever it prints will go in the $s0 register but I can call it whenever I need using a jal. 
This means I need to place a digit in $s0 and jump (the UART code has a jr $ra in it so it will return properly once complete. 
My problem is I don't know how to iterate over the digits in the number. My approach so far is to mod the number by 10 (Because it's a decimal number represented in binary) but that gives me the digits in reverse order.
E.g. 13002 % 10 = 2 (then divide 13002 by 10, integer division will truncate the decimal), 1300 % 10 = 0, divide again by 10, 130 ...so on and so forth.
As mentioned above however, that gives me the digits in reverse order. How would I properly iterate over the number?
I wrote some pseudocode in python but it's having trouble with numbers that have 0's in them:
def iterateOverDigits(n):
    while (n >= 10):
        x = n
        i = 0
        while (x >= 10):
            x = x // 10
            i += 1
        print(x)
        x = n
        x = x % (10 ** i)
        n = x
iterateOverDigits(1302) # This prints 132
 
    