Anda di halaman 1dari 10

Prctica 1 Introduccin a la programacin en ensamblador

1. Generalidades 2. Introduccin 3. Cuestiones

1. Generalidades
El desarrollo de las prcticas consistir en una breve introduccin del tema por parte del profesor, aunque la mayor parte del tiempo se dedicar al trabajo individual e independiente del alumno. En cada sesin el alumno deber contestar a las cuestiones planteadas y entregar una hoja de resultados al finalizar. Estas hojas de resultado junto con la actitud de alumno durante las sesiones servirn para la evaluar y calificar las prcticas (que representan un 10% de la nota final). A partir de la prctica 2 el alumno debe traer algn medio de almacenamiento para guardar el trabajo realizado en cada sesin.

2. Introduccin
En esta primera prctica se har uso de los conceptos bsicos de la programacin en ensamblador, para ello se proponen una serie de cuestiones sencillas que el alumno debe contestar en papel haciendo uso de los apuntes de ensamblador proporcionados en la copistera y que estn disponibles en la Web del departamento www.atc.us.es Antes de contestar a las cuestiones de este boletn lea con detenimiento los apuntes de ensamblador 80x86.

3. Cuestiones
A continuacin se presentan una serie de cuestiones que el alumno debe contestar.

3.1. Uso de instrucciones aisladas.


1. Escriba una instruccin que almacene en el registro EAX lo que hay en el registro EBX.

Prctica 1: Introduccin a la programacin en ensamblador

2. Escriba una instruccin que almacene en el registro ECX lo que hay en la memoria en la posicin apuntada por EDX.

3. Escriba una instruccin que almacene el EAX el resultado de sumar los registros EAX y EBX.

4. Escriba un trozo de cdigo que almacene en EAX el resultado de resta ECX y EBX.

5. Escriba un trozo de cdigo que realice la multiplicacin de los registros ECX y EDX, indique dnde se almacenan los resultados.

3.2. Interpretacin de instrucciones


Si el contenido de los registros EAX, EBX, ECX y EDX; y el de la memoria es el que se muestra; Indique cmo se modifican (en el caso de que se modifiquen) despus de la ejecucin de cada uno de los siguientes trozos de cdigo (los cdigos son independientes entre s) 017F FF80 0000 1000 AABB CCDD FFFF FFFF 00 11 22 33 44 55 66 77

Departamento de Arquitectura y Tecnologa de Computadores: Universidad de Sevilla

6. MOV EAX, [EBX] ADD AEX, ECX MOV [EBX], EAX

7. MUL EAX, 200 MOV EAX, EDX

8. MOV EBX, [EBX] AND EBX, EAX MOV [1000h], EBX

9. CMP AX, 0 JNZ diferentes MOV EAX, 5000h diferentes: MOV EAX, 2000h

10. CMP AX, 0 JNZ diferentes MOV EAX, 5000h JMP fuera diferentes: MOV EAX, 2000h fuera: NOP

Prctica 1: Introduccin a la programacin en ensamblador

3.3. Traduccin de expresiones aritmtico/lgicas


Traduzca a ensamblador las siguientes expresiones escritas en lenguaje C, considere la siguiente declaracin de variables: int i,z; byte v; long int a, b c; 11. i++;

12. v=v+37;

13. b=4*(a+3);

14. a=b&c;

Departamento de Arquitectura y Tecnologa de Computadores: Universidad de Sevilla

15. z=1/(4*c);

3.4. Traduccin de estructuras de control


Traduzca a ensamblador las siguientes sentencias escritas en lenguaje C. Considere que todas las variables son de 32 bits. 16. if (!b) a=a+3;

17. if (b<30) a=a+3; else a=a-3;

18. do{ d=d+a-3; }while (d<80);

Prctica 1: Introduccin a la programacin en ensamblador

19. a=0; for (i=1;i<10;i++) a=a*i;

20. for (i=0;i<a;i++) b=b*b;

3.5. Interpretacin de instrucciones en ensamblador.


Traduzca a lenguaje C las siguientes instrucciones en ensamblador, indique en cada caso el tamao de las variables usadas. 21. MOV ECX 10 ini: MOV EAX, a MUL ECX MOV a, EAX LOOP ini

Departamento de Arquitectura y Tecnologa de Computadores: Universidad de Sevilla

22. MOV CL, a SAR b, CL

23. CMP JGE MOV JMP else: MOV EBX,-1000 fin: NOP AX, 3 else EBX, 1000 fin

24. MOV EAX, a MOV EBX, 20 ini: MUL DEC CMP JNZ NOP 10 EBX EBX, 0 ini

Prctica 1: Introduccin a la programacin en ensamblador

25. LEA LEA LEA MOV do: MOV CMP JBE MOV ADD jmp else: MOV [ECX],EAX ADD ECX, 4 while: ADD ESI, 4 CMP ESI,100 JBE do NOP EAX, [ESI] EAX, 16 else [EDI],EAX EDI, 4 while ESI, EDI, EDX, ECX, datos mayores menores 16

Departamento de Arquitectura y Tecnologa de Computadores: Universidad de Sevilla

Apellidos

Nombre

DNI

Turno

Fecha

Nota

Copie en esta hoja el resultado de las cuestiones que se indican. Cuestin 7

Cuestin 15

Cuestin 18

Prctica 1: Introduccin a la programacin en ensamblador

Cuestin 20

Cuestin 22

Cuestin 25

10

Anda mungkin juga menyukai