Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .data
- expVal23: .asciiz "Expected Value : 23 Your Value : "
- expVal21: .asciiz "Expected Value : 21 Your Value : "
- endl: .asciiz "\n"
- .text
- # #
- # int getDigit(int number);
- # List Used Registers Here:
- #
- # #
- getDigit: li $t0, 0
- bge $a1, $t1, end
- move $t0, $a1
- end: rem $t2, $a1, $t1
- div $t3, $a1, $t1
- add $t0, $t2, $t3
- move $v1, $t0
- jr $ra
- ##
- # int sumOfDoubleEvenPlace(int number);
- # List Used Registers Here:
- # sum --> $s0
- # digit --> $s1
- #
- ##
- sumOfDoubleEvenPlace: addi $sp, $sp, -4
- sw $a0, ($sp)
- sw $ra, 4($sp)
- div $a0, $a0, $t1
- ble $a0, $0, end2
- whileloop: rem $t4, $a0, $t1
- mul $a1, $t4, $t5
- jal getDigit
- add $v0, $v0, $v1
- div $a0, $a0, $t6
- bgt $a0, 0, whileloop
- end2: addi $v0, $v0, -4
- lw $ra, 4($sp)
- lw $a0, ($sp)
- addi $sp, $sp, 4
- jr $ra
- main:
- li $s0, 89744563 # int test1 = 89744563;
- li $s1, 98756421 # int test2 = 98756421;
- li $s2, 0 # int result1 = 0;
- li $s3, 0 # int result2 = 0;
- li $t1, 10
- li $t5, 2
- li $t6, 100
- # code for first function call
- add $a0, $0, $s0
- jal sumOfDoubleEvenPlace
- add $s2, $0, $v0
- la $a0, expVal23
- addi $v0, $0, 4
- syscall
- move $a0, $s2
- addi $v0, $0, 1
- syscall
- la $a0, endl
- addi $v0, $0, 4
- syscall
- # code for first function call
- add $a0, $0, $s1
- jal sumOfDoubleEvenPlace
- add $s3, $0, $v0
- la $a0, expVal21
- addi $v0, $0, 4
- syscall
- move $a0, $s3
- addi $v0, $0, 1
- syscall
- la $a0, endl
- addi $v0, $0, 4
- syscall
- li $v0, 10
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement