LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
Práctica #3 estructura if (traducción c to asm)
1. 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
Nombre del profesor: “Mtro. Adalberto Chávez Velázquez
Fecha de realización: viernes 18 de septiembre del 2015
Calificación: _________________
1
2. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
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
borrar: mov a,#00h
mov p1,a
ljmp main
3.- PROCEDIMIENTO
EQUIPO MATERIAL
2
3. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
Intel (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 PRACTICA
Verificar 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.
DIAGRAMAS,CALCULOS Y RECOPILACION DE DATOS
3
4. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
Quitamos FF en la parte hexadecimal y se cambia a un 05 para verificar que la estructura cambie.
4
5. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
Ahora vemos que en 05 se cambia por 01:
Y el ciclo se manda directamene a borrar.
No cumple la estructura mov siguiente.
4.- RESULTADOS Y CONCLUSIONES
5
6. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
Comparara 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 ANEXOS
Anexar 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.
Desde el punto de vista hardware, el puerto es un conector hembra DB25 con doce salidas
latcheadas (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ón
Obtención del puerto
Como ya se mencionó anteriormente las direcciones de I/O de los puertos paralelo se
almacenan en una tabla ubicada en 40h:8h (0h:408h). Entonces, éste sería un método de
obtener las direcciones. A continuación se muestra como obtener dichas direcciones en
distintos lenguajes.
Ensamblador
;en SI tengo la dirección de memoria:
;LPT1 = 0408h
;LPT2 = 0408h + 2h = 040Ah
;LPT3 = 040Ah + 2h = 040Ch
mov si,0408h ;SI = 0408h
xor ax,ax ;AX = 0
push ds ;Mete DS en la pila
mov ds,ax ;DS = AX = 0
mov 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 paralelo
El puerto paralelo se identifica por su dirección de I/O base y se identifica ante sistemas
6
7. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
DOS por el número LPT. Cuando arranca la máquina, la BIOS chequea direcciones
específicas de I/O en busca de puertos paralelos y construye una tabla de las direcciones
halladas 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 base
del puerto paralelo. La primera palabra corresponde a LPT1, la segunda a LPT2 y la tercera
a LPT3. Hay que agregar que en DOS tenemos el dispositivo PRN que es un alias a uno de
los 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 (chequeadas
en este orden). Para saber cómo detectar léase la sección Detectando SPP.
ASM
Lenguaje 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.
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-
7
8. ACADEMIA DE INGENIERIA EN SISTEMAS COMPUTACIONALES 2013.
digital/proyecto-integrador-digital.shtml
2)http://arantxa.ii.uam.es/~gdrivera/varios/notas_lpt.htm
3) http://www.informaticamoderna.com/El_puerto_paralelo.ht
m
8