#Input 2 digits, each as a character, convert them to numbers, add and output .text .globl main main: la $a0, m1 #what to output (contents of m1) li $v0, 4 # Display a message. syscall la $a0, Instr #where to put input li $a1, 3 # Length in a1-last must be enter (this actually # gets 3 digits). li $v0, 8 # Read Input string. syscall la $t1, Instr #get address of input li $t2,48 # amount to subtract to make ASCII decimal addi $a1,$a1,-1 #since actually got 3 digits set counter to 3 getdigit: lb $t0, ($t1) # Load from the address in t1 sub $t0, $t0,$t2 #make it a digit la $a0, m6 # print a newline. li $v0 4 syscall move $a0, $t0 li $v0 1 #print number syscall addi $t1,$t1,1 #go to next digit addi $a1,$a1,-1 #is it a digit bgt $a1, $0, getdigit #if not done continue end: la $a0, m8 #Prints Goodbye. li $v0 4 syscall la $v0,10 syscall # au revoir... ########################################################### # data segment ########################################################### .data m1: .asciiz "Enter a Number \n " m6: .asciiz "\nThe digit is: \n " m8: .asciiz "\nGoodbye!\n" #For exiting. .align 2 Instr: .space 10 # Space for in string. ## end of file.