Write a MIPS assembly program to read a number from the user

Write a MIPS assembly program to read a number from the user , and prints all the prime numbers between 0 and that number.

need assembely code

Solution

.text
.align 2
.globl main

# register initialization

i:
.word   2

p:
.word   0

k:
.word   2

c:
.word   1

d:
.word   2


main:

# list the first prime numbers up to given number n

li $v0, 4
la $a0, prompt
syscall     

li $v0, 5    # read n from keyboard into $v0
syscall     
move    $t0,$v0   # save n in $t0

li $v0, 4    # display message to user
la $a0, message
syscall

li $v0, 4
la $a0, space
syscall     

# load variables into the registers
lw $t1, i # $t1 = i
lw $t2, k # $t2 = k
lw $t3, p # $t3 = p
lw $t5, c # $t5 = c
lw $t6, d # $t6 = d

blt $t0,$t1 Loop2

li $v0, 1          # print integer function call 1
move    $a0, $t1    # print the integer
syscall
     

li $v0, 4       # print next line
la $a0, space
syscall        


#Outer Loop

Loop2: move $t3, $zero


# Inner Loop

Loop1: remu $t4, $t1, $t2
bne $t4, $zero, I

move $t3, $t5


I: add $t2, $t2, $t5

blt $t2, $t1 Loop1

bne $t3, $zero, P

li $v0, 1        
move    $a0, $t1    # print the integer
syscall


li $v0, 4      # print next line
la $a0, space
syscall       


P:
add $t1, $t1, $t5   # increment i

move $t2, $t6

bgt $t1, $t0, E  
j Loop2


E: li $v0,    10
    syscall     # syscall to exit


end:    jr $ra

.data

prompt:
.asciiz \"Please enter the value of number n: \"

message:
.asciiz \"The Prime Numbers are : \"

space: .asciiz \"\     \"

Write a MIPS assembly program to read a number from the user , and prints all the prime numbers between 0 and that number. need assembely codeSolution.text .ali
Write a MIPS assembly program to read a number from the user , and prints all the prime numbers between 0 and that number. need assembely codeSolution.text .ali

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site