You are on page 1of 2

Facultad de Informtica

Universidad Complutense de Madrid

FUNDAMENTOS DE COMPUTADORES2
PRCTICA 3: PROGRAMACIN CON SUBRUTINAS Objetivos
El objetivo de esta prctica es estudiar el soporte del ensamblador del ARM para la gestin de subrutinas, para lo que resulta necesario familiarizarse con, el estndar de llamadas a subrutinas, el ARM Architecture Procedure Call Standard (AAPCS). Como todos los conceptos han sido explicados en clase, pasamos directamente al desarrollo de la prctica. Nota: En todos los casos el fichero ldscript.ld ser el mismo que el de la prctica 1, adems, todos los programas inicializarn la base de la pila en START: con la siguiente instruccin:
START: LDR SP, =0x0C7FF000

Parte A (Trabajo a realizar en casa)


Codificar en ensamblador del ARM la siguiente funcin en C encargada de buscar el valor mximo de un vector A de enteros positivos de longitud tam y devolver la posicin de ese mximo (el ndice):
int maximo(int A[], int tam){ int i=0, max=0, ind=0; // Utilizar directamente los registros R4, R5, R6 for(i=0; i<tam; i++) { if(A[i]>max) { max=A[i]; ind=i; } } return ind; }

Nota: Este cdigo se corresponde (excepto por las instrucciones de gestin de subrutina) con el bucle interno del apartado b de la prctica 2.

Parte B (Trabajo a realizar en casa)


Codificar en ensamblador del ARM un algoritmo de ordenacin basado en el cdigo del apartado anterior. Supongamos un vector A de N enteros mayores de 0, queremos

Prcticas de Fundamentos de Computadores

Prctica 3 / pg. 1

rellenar un vector B con los valores de A ordenados de mayor a menor. Para ello nos podemos basar en el siguiente cdigo de alto nivel:
#define N 8 int A[N]={7,3,25,4,75,2,1,1}; int B[N]; void main() { int j=0; // Usar un registro para j for(j=0; j<N; j++) { ind=maximo(A,N) B[j]=A[ind]; A[ind]=0; } }

Parte C (Trabajo a realizar en el laboratorio)


En el laboratorio se pedir una modificacin del trabajo realizado en casa. Igual que en las prcticas anteriores se realizar un examen online en el laboratorio para comprobar que el estudiante ha entendido correctamente todos los conceptos asociados a la prctica desarrollada.

Prcticas de Fundamentos de Computadores

Prctica 3 / pg. 2

You might also like