Práctica #3 estructura if (traducción c to asm)

10
ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013. Instituto Tecnológico Superior de Zapopan Ingeniería Sistemas Computacionales Reporte de la práctica No. 3 Estructura IF (Traducción C to ASM)Nombre del alumno: Jorge Aníbal Quezada Ulibarri 1

Transcript of Práctica #3 estructura if (traducción c to asm)

Page 1: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

Instituto Tecnológico Superior de Zapopan

Ingeniería Sistemas Computacionales

Reporte de la práctica No. 3“Estructura IF (Traducción C to ASM)”

Nombre del alumno: Jorge Aníbal Quezada UlibarriNombre del profesor: “Mtro. Adalberto Chávez VelázquezFecha de realización: viernes 18 de septiembre del 2015

1

Page 2: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

Calificación: _________________

CARRERA PLAN DE ESTUDIO

CLAVE DE LA ASIGNATURA NOMBRE DE LA ASIGNATURA

Ingeniería en sistemas

2010 6P6 Lenguajes de Interfaz

PRACTICA No.

LABORATORIO DE:

S-LIA DURACION EN

HORAS:3 NOMBRE DE

LA PRACTICA:

Estructura IF (Traducción to ASM)

1.- OBJETIVO O COMPETENCIA

Verificar el funcionamiento de un programa en c como es traducido a lenguaje ensamblador.

2.- FUNDAMENTOS

Código:org 00h mov A,#0ffh mov P0,A mov A, #00h mov P1,A ljmp main

main: mov r0,P0 cjne r0,#05h,borrar mov a,#0ffh mov p1,a ljmp main

2

Page 3: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

borrar: mov a,#00h mov p1,a ljmp main 3.- PROCEDIMIENTO

EQUIPO MATERIALIntel (R) Celeron(R) CPU 1000M @1.80GHZ 1.80GHZ 4.00 GB (3.36 GB utilizable

Windows 10 Home Single Languaje

1) El software MCU 8051 IDE

2) Código de IF en lenguaje ensamblador

DESARROLLO DE LA PRACTICAVerificar el funcionamiento de ciclos, en este caso una estructura IF traducida a lenguaje ensamblador.De esta forma se pudo comparar que el ciclo en el lenguaje máquina fuera infinito y de cómo se podría comparar a una estructura en C para que de tal forma también cumpliera con el objetivo de ser infinito manteniendo Iteraciones de forma recursiva.

3

Page 4: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

DIAGRAMAS,CALCULOS Y RECOPILACION DE DATOS

Quitamos FF en la parte hexadecimal y se cambia a un 05 para verificar que la estructura cambie.

4

Page 5: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

Ahora vemos que en 05 se cambia por 01:

5

Page 6: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

Y el ciclo se manda directamene a borrar.No cumple la estructura mov siguiente.

4.- RESULTADOS Y CONCLUSIONESComparara un lenguaje máquina con una lenguaje c tiene sus ventajas y desventajas, en C puede ser más corta la sintaxis del programa, pero en lenguaje máquina podemos observar que es más complejo la estructura del código, y la sintaxis son semejantes el proceso también mantiene similitud.

5.-BIBLIOGRAFIA Y ANEXOSAnexar Investigación de Puerto Paralelo LPT1 y LPT2:Puerto Paralelo:Desde el punto de vista del software, el puerto paralelo son tres registros de 8 bits cada uno,ocupando tres direcciones de I/O consecutivas de la arquitectura x86.

6

Page 7: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

Desde el punto de vista hardware, el puerto es un conector hembra DB25 con doce salidaslatcheadas (que tienen memoria/buffer intermedio) y cinco entradas, con 8 líneas de masa.La función normal es transferir datos a una impresora a través de las 8 líneas de datos,usando las señales restantes como control de flujo.El documento lo separé en tres secciones principales:

ProgramaciónObtención del puertoComo ya se mencionó anteriormente las direcciones de I/O de los puertos paralelo sealmacenan en una tabla ubicada en 40h:8h (0h:408h). Entonces, éste sería un método deobtener las direcciones. A continuación se muestra como obtener dichas direcciones endistintos lenguajes.Ensamblador;en SI tengo la dirección de memoria:;LPT1 = 0408h;LPT2 = 0408h + 2h = 040Ah;LPT3 = 040Ah + 2h = 040Chmov si,0408h ;SI = 0408hxor ax,ax ;AX = 0push ds ;Mete DS en la pilamov ds,ax ;DS = AX = 0mov ax,word ptr [SI] ;AX = [0h:SI]pop ds ;recupero DS de la pila;ahora en AX tengo la dirección base

Tabla de puertos paraleloEl puerto paralelo se identifica por su dirección de I/O base y se identifica ante sistemasDOS por el número LPT. Cuando arranca la máquina, la BIOS chequea direccionesespecíficas de I/O en busca de puertos paralelos y construye una tabla de las direccioneshalladas en la posición de memoria 40h:8h (o 0h:0408h).Esta tabla contiene hasta tres palabras de 16 bits. Cada palabra es la dirección de I/O basedel puerto paralelo. La primera palabra corresponde a LPT1, la segunda a LPT2 y la terceraa LPT3. Hay que agregar que en DOS tenemos el dispositivo PRN que es un alias a uno delos dispositivos LPT (generalmente es LPT1, pero se puede cambiar con la orden MODE)Las direcciones estándar para los puertos paralelos son 03BCh,0378h y 0278h (chequeadasen este orden). Para saber cómo detectar léase la sección Detectando SPP.ASMLenguaje Ensamblador es la primera abstracción del Lenguaje de Máquina , consistente en asociar a los opcodes palabras clave que faciliten su uso por parte del programador.

7

Page 8: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

Como se puede ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de Máquina, y viceversa; simplemente, es una abstracción que facilita su uso para los seres humanos. Por otro lado, la computadora no entiende directamente al Lenguaje Ensamblador; es necesario traducirle a Lenguaje de Máquina. Originalmente, este proceso se hacía a mano, usando para ello hojas donde se escribían tablas de programa similares al ejemplo de la calculadora que vimos arriba . Pero, al ser tan directa la traducción, pronto aparecieron los programas Ensambladores, que son traductores que convierten el código fuente (en Lenguaje Ensamblador) a código objeto (es decir, a Lenguaje de Máquina).

Una característica que hay que resaltar, es que al depender estos lenguajes del hardware, hay un distinto Lenguaje de Máquina (y, por consiguiente, un distinto Lenguaje Ensamblador) para cada CPU. Dando un ejemplo, podemos mencionar tres lenguajes completamente diferentes, que sin embargo vienen de la aplicación de los conceptos anteriores:

Lenguaje Ensamblador de la familia Intel 80x86

Lenguaje Ensamblador de la familia Motorola 68000

Lenguaje Ensamblador del procesador POWER, usado en las IBM RS/6000.

Tenemos 3 fabricantes distintos, compitiendo entre sí y cada uno aplicando conceptos distintos en la manufactura de sus procesadores, su arquitectura y programación; todos estos aspectos, influyen en que el lenguaje de máquina y ensamblador cambie bastante.

1)http://www.monografias.com/trabajos22/proyecto-integrador-digital/proyecto-integrador-digital.shtml

2)http://arantxa.ii.uam.es/~gdrivera/varios/notas_lpt.htm

3) http://www.informaticamoderna.com/ El_puerto_paralelo.htm

8

Page 9: Práctica #3  estructura if (traducción c to asm)

ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.

9