MIPS CODE:
$LC1:
.ascii "\012 Input a number to search :\000"
$LC2:
.ascii "%d\000"
$LC3:
.ascii "-1\000"
$LC0:
.word 70
.word 15
.word 85
.word 25
.word 80
.word 100
.word 50
.word 20
.word 90
.word 65
.word 30
.word 45
.word 60
.word 5
.word 75
.word 10
.word 40
.word 95
.word 55
.word 35
main:
addiu $sp,$sp,-128
sw $31,124($sp)
sw $fp,120($sp)
move $fp,$sp
lui $2,%hi($LC0)
addiu $3,$fp,32
addiu $2,$2,%lo($LC0)
li $4,80 # 0x50
move $6,$4
move $5,$2
move $4,$3
jal memcpy
nop
sw $0,24($fp)
sw $0,28($fp)
sw $0,112($fp)
lui $2,%hi($LC1)
addiu $4,$2,%lo($LC1)
jal printf
nop
addiu $2,$fp,112
move $5,$2
lui $2,%hi($LC2)
addiu $4,$2,%lo($LC2)
jal scanf
nop
b $L2
nop
$L5:
lw $2,24($fp)
nop
sll $2,$2,2
addiu $3,$fp,24
addu $2,$3,$2
lw $3,8($2)
lw $2,112($fp)
nop
bne $3,$2,$L3
nop
li $2,1 # 0x1
sw $2,28($fp)
b $L4
nop
$L3:
lw $2,24($fp)
nop
addiu $2,$2,1
sw $2,24($fp)
$L2:
lw $2,24($fp)
nop
slt $2,$2,20
bne $2,$0,$L5
nop
$L4:
lw $2,28($fp)
nop
beq $2,$0,$L6
nop
lw $5,24($fp)
lui $2,%hi($LC2)
addiu $4,$2,%lo($LC2)
jal printf
nop
b $L7
nop
$L6:
lui $2,%hi($LC3)
addiu $4,$2,%lo($LC3)
jal printf
nop
$L7:
move $2,$0
move $sp,$fp
lw $31,124($sp)
lw $fp,120($sp)
addiu $sp,$sp,128
j $31
nop
------------------------------------------------
C Code:
main()
{
int
arr[]={70,15,85,25,80,100,50,20,90,65,30,45,60,5,75,10,40,95,55,35};
int i=0,flag=0,num=0;
printf("\n Input a number to search :");
scanf("%d",&num);
while(i<20)
{
if(arr[i]==num)
{
flag=1;
break;
}
i++;
}
if(flag)
printf("%d",i);
else
printf("-1");
}
Write a MIPS assembly language program that can perform a linear search for a number that...