Código C:
Código
void Intercambiar(int* Lista, int i, int j); int OrdenaPacientes(int* Lista, struct BCP* P, unsigned char criterio) { int pid,num,i,j; if( (criterio != CRIT_PRIO) && (criterio != CRIT_ALFA) ) return -1; //error // Copiamos los indices de los BCPs ocupados // a la lista for( pid = 0, num = 0; pid < MAX_PACIENTES ; pid++ ) if( P[pid].prioridad != 0 ) { Lista[num] = pid; num++; } // Ordenamos la lista if( criterio == CRIT_PRIO ) for( i = 0; i < num ; i++ ) { j = PosMinPrioridad(Lista, P,i,num); Intercambiar(Lista, i, j ); } else for( i = 0; i < num ; i++ ) { j = PosMinAlfabetico(Lista, P,i,num); Intercambiar(Lista, i, j ); } return num; }
Y aquí el código de la función Intercambiar en ASM:
Código
.global Intercambiar Intercambiar: push {fp} mov fp, sp sub sp, #4 ldr r3, [r0, r2, lsl #2] str r3, [fp, #-4] ldr r3, [r0, r1, lsl #2] str r3, [r0, r2, lsl #2] ldr r3, [fp, #-4] str r3, [r0, r1, lsl #2] mov sp, fp pop {fp} mov pc, lr .end





Autor


En línea





No te lo reconoce probablemente porque al archivo le has puesto extension .s(a mi tambien me ha pasado, lo pone en el enunciado), si lo remplazas por .asm te funcionara, si ese es el problema, deberia reconocerlo tambien con extension .S