Here is the code we wrote today:

#implementation of multichoose funciton
  
.text
        #read n
        addi $v0, $zero, 5
        syscall
        addi $a0, $v0, 0
        
        #read k
        addi	$v0, $zero, 5
        syscall
        add	$a1, $zero, $v0
	jal multichoose
	
        #print return value
        add $a0, $v0, $zero
        addi $v0, $zero, 1
        syscall
        
	#exit
        addi $v0, $zero, 10
        syscall
        
multichoose:	#n is a0, k is a1
	addi	$sp, $sp, -16
	sw	$ra, ($sp)
	sw	$s0, 4($sp)
	sw	$s1, 8($sp)
	sw	$s2, 12($sp)
	
	#if(k == 1) return n;
	addi	$t0, $zero, 1
	bne	$a1, $t0, checkn
	add	$v0, $a0, $zero
	b	return
		
checkn:	#if(n == 1) return 1;
	bne	$a0, $t0, recurse
	addi	$v0, $t0, 0
	b	return

recurse: #int val1 = multichoose(n-1, k);
	add	$s0, $zero, $a0  #n is $s0
	add	$s1, $zero, $a1	 #k is $s1
	addi	$a0, $a0, -1
	#k is already in $n1
	jal	multichoose
	addi	$s2, $v0, 0	#val1 is $s2
	
	#int val2 = multichoose(n, k-1);
	addi	$a0, $s0, 0
	addi	$a1, $s1, -1
	jal	multichoose
	
	add	$v0, $s2, $v0	#return val1 + val2;

return:
	lw	$ra, ($sp)
	lw	$s0, 4($sp)
	lw	$s1, 8($sp)
	lw	$s2, 12($sp)
	addi	$sp, $sp, 16
	jr	$ra