- Aug 21, 2005
- 3,907
- 8
- 81
Can someone explain to me what the purpose of the first 6 and the last 5 instructions do? I don't quite understand. (I don't understand what the bge function and blt functions are for.) Thanks in advance.
Can someone explain to me what the purpose of the first 6 and the last 5 instructions do? I don't quite understand. (I don't understand what the bge function and blt functions are for.) Thanks in advance.
int * array; // initialized elsewhere
void myfunction (int A, int B, int C, int N)
{
int i;
if ( N < 0 )
return;
for ( i=0; i < N; ++i )
{
if ( array[A] >= array[B] )
array[C] = array[A];
else
array[C] = array[B];
A++;
B++;
C++;
}
}
int A[10] = { 1, 4, 6, 3, 1, 6, 4, 3, 9, 5 };
int B[10] = { 7, 3, 9, 0, 2, 7, 8, 1, 3, 8 };
int C[10];
int N = 10;
int i;
if ( N > 0 )
{
for ( i=0; i < N; ++i )
{
if ( A[i] >= B[i] )
C[i] = A[i];
else
C[i] = B[i];
}
}
void main()
{
int a[10] = { 1, 4, 6, 3, 1, 6, 4, 3, 9, 5 };
int b[10] = { 7, 3, 9, 0, 2, 7, 8, 1, 3, 8 };
int c[10];
maximize(a, b, c, 10);
}
inline void maximize( int * A, int * B, int * C, int N)
{
int i;
if ( N > 0 )
{
for ( i=0; i < N; ++i )
{
if ( *A >= *B )
*C = *A;
else
*C = *B;
A++;
B++;
C++;
}
}
}
void main()
{
int a[10] = { 1, 4, 6, 3, 1, 6, 4, 3, 9, 5 };
int b[10] = { 7, 3, 9, 0, 2, 7, 8, 1, 3, 8 };
int c[10];
maximize(a, b, c, 10);
}
inline void maximize( int * A, int * B, int * C, int N)
{
int i;
for ( i=0; i < N; ++i )
{
if ( *A >= *B )
*C = *A;
else
*C = *B;
A++;
B++;
C++;
}
}
main:
add r10, r0, r0
addi r2, r0, A
addi r3, r0, B
addi r4, r0, C
addi r5, r0, N
loop:
bge r10, r5, end
lw r20, 0(r2)
addi r10, r10, 1
lw r21, 0(r3)
addi r2, r2, 4
cmp r20, r21
movge r22, r20
cmp r20, r21
movlt r22, r21
sw r22, 0(r4)
addi r3, r3, 4
b loop
addi r4, r4, 4 ; delay slot on unconditional branch ???
end: