Write a MIPS assembly program to calculate nCr.
The program should accept the numbers n and r from the user. The program should call the factorial function.
nCr = n! / ((n-r)! * r!)
If n<r print an error message "n should not be less than r: re-enter the values." and get the inputs n and r from the user.
.file 1 ""
.section .mdebug.abi32
.previous
.nan legacy
.module fp=32
.module nooddspreg
.abicalls
.rdata
.align 2
$LC0:
.ascii "\012 Enter the value for N and R \000"
.align 2
$LC1:
.ascii "%d%d\000"
.align 2
$LC2:
.ascii "n should not be less than r: re-enter the values\000"
.align 2
$LC3:
.ascii "\012 The value of ncr is: %d\000"
.text
.align 2
.globl main
.set nomips16
.set nomicromips
.ent main
.type main, @function
main:
.frame $fp,56,$31 # vars= 16, regs= 4/0, args= 16, gp= 8
.mask 0xc0030000,-4
.fmask 0x00000000,0
.set noreorder
.cpload $25
.set nomacro
addiu $sp,$sp,-56
sw $31,52($sp)
sw $fp,48($sp)
sw $17,44($sp)
sw $16,40($sp)
movz $31,$31,$0
move $fp,$sp
.cprestore 16
lw $2,%got($LC0)($28)
nop
addiu $4,$2,%lo($LC0)
lw $2,%call16(puts)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,puts
1: jalr $25
nop
lw $28,16($fp)
addiu $3,$fp,32
addiu $2,$fp,28
move $6,$3
move $5,$2
lw $2,%got($LC1)($28)
nop
addiu $4,$2,%lo($LC1)
lw $2,%call16(__isoc99_scanf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,__isoc99_scanf
1: jalr $25
nop
lw $28,16($fp)
$L5:
lw $3,28($fp)
lw $2,32($fp)
nop
slt $2,$3,$2
beq $2,$0,$L6
nop
lw $2,%got($LC2)($28)
nop
addiu $4,$2,%lo($LC2)
lw $2,%call16(printf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,printf
1: jalr $25
nop
lw $28,16($fp)
addiu $3,$fp,32
addiu $2,$fp,28
move $6,$3
move $5,$2
lw $2,%got($LC1)($28)
nop
addiu $4,$2,%lo($LC1)
lw $2,%call16(__isoc99_scanf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,__isoc99_scanf
1: jalr $25
nop
lw $28,16($fp)
b $L5
nop
$L6:
nop
addiu $3,$fp,32
addiu $2,$fp,28
move $6,$3
move $5,$2
lw $2,%got($LC1)($28)
nop
addiu $4,$2,%lo($LC1)
lw $2,%call16(__isoc99_scanf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,__isoc99_scanf
1: jalr $25
nop
lw $28,16($fp)
lw $2,28($fp)
nop
move $4,$2
lw $2,%got(fact)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,fact
1: jalr $25
nop
lw $28,16($fp)
move $16,$2
lw $2,32($fp)
nop
move $4,$2
lw $2,%got(fact)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,fact
1: jalr $25
nop
lw $28,16($fp)
move $17,$2
lw $3,28($fp)
lw $2,32($fp)
nop
subu $2,$3,$2
move $4,$2
lw $2,%got(fact)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,fact
1: jalr $25
nop
lw $28,16($fp)
mult $17,$2
mflo $2
nop
nop
bne $2,$0,1f
div $0,$16,$2
break 7
1:
mfhi $2
mflo $2
sw $2,24($fp)
lw $5,24($fp)
lw $2,%got($LC3)($28)
nop
addiu $4,$2,%lo($LC3)
lw $2,%call16(printf)($28)
nop
move $25,$2
.reloc 1f,R_MIPS_JALR,printf
1: jalr $25
nop
lw $28,16($fp)
nop
move $sp,$fp
lw $31,52($sp)
lw $fp,48($sp)
lw $17,44($sp)
lw $16,40($sp)
addiu $sp,$sp,56
j $31
nop
.set macro
.set reorder
.end main
.size main, .-main
.align 2
.globl fact
.set nomips16
.set nomicromips
.ent fact
.type fact, @function
fact:
.frame $fp,24,$31 # vars= 8, regs= 1/0, args= 0, gp= 8
.mask 0x40000000,-4
.fmask 0x00000000,0
.set noreorder
.set nomacro
addiu $sp,$sp,-24
sw $fp,20($sp)
move $fp,$sp
sw $4,24($fp)
li $2,1 # 0x1
movz $31,$31,$0
sw $2,8($fp)
lw $2,24($fp)
nop
bne $2,$0,$L8
nop
lw $2,8($fp)
b $L9
nop
$L8:
li $2,1 # 0x1
sw $2,12($fp)
b $L10
nop
$L11:
lw $3,8($fp)
lw $2,12($fp)
nop
mult $3,$2
mflo $2
sw $2,8($fp)
lw $2,12($fp)
nop
addiu $2,$2,1
sw $2,12($fp)
$L10:
lw $3,12($fp)
lw $2,24($fp)
nop
slt $2,$2,$3
beq $2,$0,$L11
nop
lw $2,8($fp)
$L9:
move $sp,$fp
lw $fp,20($sp)
addiu $sp,$sp,24
j $31
nop
.set macro
.set reorder
.end fact
.size fact, .-fact
.ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609"
Write a MIPS assembly program to calculate nCr. The program should accept the numbers n and...
Write a MIPS Assembly program to accept two numbers A and B from the user. Print all the prime numbers between A and B. Also, check if A and B are prime. If no prime number exits print the string "No prime number between numbers A and B"
Q-1: Write a program in Assembly language using MIPS instruction set that reads 15 integer numbers from user and stores all the numbers in the array intArray. Now, read another integer number N from the user, find the total number of array elements that are greater or equal to the number N, and the total number of array elements that are lower than the number N You must have two procedures: i. ReadIntegerArray: this procedure should read integer array elements...
The program I'm using is MIPS (mars) assembly; Write a program that in the main routine ask the user input n numbers(2<n<11) and pass n and array pointer to FillArray to stores numbers in the array. Main again passes the pointer to AddElement Function to add the elements of the array, and return the result back to main to print it.
mathTutor Write a program that selects two random numbers -20 to 20. The two numbers would get displayed with "+" between them. The user should enter the sum of the two numbers. The program should print "Incorrect" if the user enters a wrong answer and re-prompts the user to re-enter the answer again. Limit the number of incorrect tries to 3. After 3 incorrect tries print the correct answer. The program should print a message like "Correct!" if the user...
mathTutor Write a program that selects two random numbers -20 to 20. The two numbers would get displayed with "+" between them. The user should enter the sum of the two numbers. The program should print "Incorrect" if the user enters a wrong answer and re-prompts the user to re-enter the answer again. Limit the number of incorrect tries to 3. After 3 incorrect tries print the correct answer. The program should print a message like "Correct!" if the user...
Write a program in MIPs Assembly Language to compute nth number of a fibonacci number sequence. Your program should prompt for an integer input n from the user. The program should call a recursive function to compute the nth fibonacci number. Your program must follow programming convention. You should submit program and screenshot of output in a single word/pdf file. You should use following recursive definition of fibonacci function: fib(0) = 0 fib(1) = 1 fib(n) = fib(n-1) +fib(n-2)
Write a program in MIPS to accept a string from a user, reverse that string and print it out to the user. You must write a procedure that performs the reversal task. Example: Please Enter a String: Hello How Are You Reversed String: uoY erA woH olleH
c++ please
(1) Write a program that prompts the user to enter an integer value N which will rpresent the parameter to be sent to a function. Use the format below. Then write a function named CubicRoot The function will receive the parameter N and return'its cubic value. In the main program print the message: (30 Points) Enter an integer N: [. ..1 The cubic root of I.. ] is 2 update the code om part and write another function...
DONE IN PYTHON The factorial of a non-negative integer n, denoted by n!, is the product of all positive integers less than or equal to n. For example, 5 ! = 5 × 4 × 3 × 2 × 1 = 120. The value of 0! is 1. Write a program, with comments, to do the following: 20 points Ask the user to enter a positive integer n. between 1 and 20 ; You may assume the user will enter...
Introduction: In this lab, you will write a MIPS program to read in (up to) 50 integer values from the user, store them in an array, print out the amay, one number per line, reverse the elements in the array and finally print out the elements in the just-reversed) array. Feel free to do this lab and all assembly programming labs) in Windows. You must use MARS Getting started: l. In MARS, create a new assembly file with the name...