Guia 10
Guia 10
Guia 10
Gua 10
Facultad:
Ingeniera
Escuela:
Computacin
Asignatura: Compiladores
Objetivos Especficos
Reconocer
las
diferentes
instrucciones
para
la
generacin de cdigo ensamblador.
Realizar segmentos de cdigo a travs de ejemplos de ASM
embebidos en C++.
Material y Equipo
Gua de Laboratorio N 10.
Computadora con DevC++
Introduccin Terica
El lenguaje ensamblador que se utiliza para traducir
Gua 3 al cdigo de mquina. Cada microprocesador o micro
programas
controlador tiene su propio lenguaje ensamblador con su
particular
conjunto de instrucciones y sus varios modos de
Gua 4
direccionamiento
que
dependen
de
la
arquitectura
del
hardware, cada nuevo procesador de INTEL que sale al mercado,
fafabricante agrega algunas instrucciones a su conjunto de
el
instrucciones, pero siempre conservan las instrucciones y
registros
de
los
modelos
anteriores
por
razones
de
compatibilidad.
Compiladores. Gua 10
Compiladores. Gua 10 3
Compiladores. Gua 10
MOV
se
puede
realizar
las
siguientes
Compiladores. Gua 10 5
Procedimiento
Desarrolle el siguiente programa
Gua 3
embebido:
#include <cstdlib>
#include
Gua 4 <iostream>
using namespace std;
int a;
fa b;
int
main()
{
asm("movl $9, %eax");
asm("subl $4, %eax");
asm("movl %eax, _a");
printf("a = %d\n", a);
asm("movl $3, %eax");
asm("addl $9, %eax");
asm("movl %eax, _b");
printf("b = %d\n", b);
system("PAUSE");
return 0;
}
de
C++
con
ensamblador
Compiladores. Gua 10
Compiladores. Gua 10 7
Anlisis de resultados
Explique, Como se puede hacer mejoras al programa siguiente:
#include <cstdlib>
#include <iostream>
using namespace std;
int a=3;
int b=20;
int c=7;
int d=1;
int e=0;
main()
{
asm("movl _a, %eax");
asm("add _b, %eax");
asm("add _c, %eax");
asm("add _d, %eax");
asm("movl $4, %ecx");
asm("cltd");
asm("divl %ecx");
asm("mov %eax, _c");
asm("movl %edx, _e");
printf(" %d\n", c);
printf(" %d\n", e);
system("PAUSE");
return 0;
}
Compiladores. Gua 10
Investigacin complementaria
Se pide los programas que generen cdigo ensamblador
para:
1. sentencias condicionales
if (i 2 j > 7) {
<Bloque A>
else {
<Bloque B>
}
<Bloque C>
2. sentencias repetitivas for
for (inicial; condicion; incremento) {
<cuerpo de for>
}
3. sentencias repetitivas while.
while (inicial) {
<cuerpo de while>
}
4. funciones
Investigar:
o Que es un interprete
o Cul es la funcin principal
o Como funciona
o Que resultado genera
o Convenciones lxicas de ENSAMPOCO/3
o Ejemplo de ENSAMPOCO/3
Bibliografa
http://www.gui.uva.es/udigital/
http://repositori.uji.es/xmlui/bitstream/handle/10234/59
16/codigo.apun.pdf?sequence=1
Compiladores. Gua 10 9
Gua
10:
Embebido
Lenguaje
Hoja de cotejo:
Ensamblador
Docente:
Tema: Presentacin
del programa
Alumno
:
10
1
Mquina No:
Mquina No:
Mquina No:
GL:
Alumno:
Docente:
GL:
Docente:
GL:
Fecha:
EVALUACION
%
CONOCIMIENTO
Del 20
al 30%
APLICACIN
DEL
CONOCIMIENTO
Del 40%
al 60%
1-4
5-7
8-10
Conocimie
nto
deficient
e de los
fundament
os
tericos
Conocimiento
y explicacin
incompleta de
los
fundamentos
tericos
Conocimiento
completo y
explicacin
clara de los
fundamentos
tericos
No tiene
actitud
proactiva
.
Actitud
propositiva y
con
propuestas no
aplicables al
contenido de
la gua.
Tiene actitud
proactiva y sus
propuestas son
concretas.
ACTITUD
Del 15%
al 30%
TOTAL
100%
Nota