Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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.
Advertisement
Add Comment
Please, Sign In to add comment