Examen Parcial Otoño 2010 (2010)

Examen Español
Universidad Universidad Politécnica de Cataluña (UPC)
Grado Ingeniería de Sistemas de Telecomunicación - 1º curso
Asignatura Fonamentos de Ordenadores
Año del apunte 2010
Páginas 2
Fecha de subida 12/11/2014
Descargas 0
Subido por

Vista previa del texto

Control 2 FO, cuatrimestre lA, Grupo 70 (ls/Diciembre/2010) .
Instrucciones: La duración del examen es de 50 minutos.
Ejercicio 1 (l.s puntos) Escribir en ensamblador IA32 las siguientes declaraciones de constantes y variables escritas en C: #defineN 20 int v[N]; short vs[N] Ejercicio 2 (4 puntos) .
Traducir el siguiente código escrito en ea ensarnblador IA32, t.eniendo en cuenta que los valores de la variable i Y aux se almacenan en el registro %esiy %edx, respectivamente. El resto de variables son las que se han declarado en el ejercicio 1.
for (i=O; i<N/2; i++) t aux=v[i] ; v[i]=v[N-i-l]; v[N-i-l]=aux; Ejercicio 3 (4.5 puntos) Traducir el siguiente código escrito en C a ensamblador JA32,teniendo en cuenta que los valores de las variables i y j se almacenan en los registros %esi y%edi, respectivamente. El resto de variables son las que se han declarado en el ejercicio 1.
i=O; j=o; while (i<N) { if (v[i]>=-32768 { vs[j]~[i]; j ='j+l;i i+l; && v[i]<=32767) Recordatorio /* Copiar rnovlopl, rnovw opl, rnovb opl, de instrucciones básicas de IA32: contenidos: op2 =,opl */ , op2 /* op2, opl de 4 by~e~ */ op2 /* op2, opl de 2 bytes */ op2 /* op2, opl de 1 byte' */ /*'Surna: op2 = op2 + opl */ addl opl, op2 /* op2, opl de4 bytes */ addw opl, op2 /* op2, opl de 2 bytes */ addb opl, op2 /* op2, opl de 1 byte */ /* Resta: subl opl, subw opl, subb opl, op2 op2 op2 op2 /* Producto: op2 imull opl, op2 op2 - opl */ /* op2, opl de 4 bytes */ , /* op2, opl de,2 bytes */ /* op2, opl de 1 byte */ op2 * opl */ /* op2, opl de 4 bytes */ /* op2 es registro */ /* Producto: op3 = op2 * opl * / imull opl, op2, op3 /* op3, op2, opl de 4 bytes */ /* opl es inmediato, op3 es registro, op2 es memoria o reg"istro */ /* Salto incondicional jmp etiqueta, /». Comparación: cmpl opl, op2 cmpw opl, op2 cmpb opl, op2 *f /* salto a etiqueta ,* / op2 - opl, sólo modifica registro 'de flags */ /* op Z; opl de 4 bytes */ /* op2, opl de 2 bytes */ /* op2, opl de 1 byte */ /* Salto condicional según valores del registro de flags */ ' je etiqueta /* salto a etiqueta si opl -- op2 */ jne etiqueta, /* salto a etiqueta si opl != op2 */ jg etiqueta /* salto a e t.í.que t a si op2 > opl */ jge etiqueta /* salto a etiqueta si op2 >= opl */ jl etiqueta /* salto a etiqueta si op2 < opl */ jle etiqueta /* salto a etiquet~ si op2 <= opl */ /* convers~on de tipo: óp2=ExtSigno(opl) */ rnovsbl op1., op2 /* op2 de 4 bytes, opl de 1 byte */ rnovsbw opl, op2 /* op2 de 2 bytes, opl de 1 byte */ rnovswl ópl, op2 '/* op2 de' 4 bytes, ~pl de 2 by~e */ ...