Lenguaje de Interfaz
Lenguaje de Interfaz
Lenguaje de Interfaz
• Registro de Apuntador de
Instrucciones.
1.2 El procesador y sus registros
El registro apuntador de instrucciones
(IP) de 16 bits contiene el
desplazamiento de dirección de la
siguiente instrucción que se ejecuta
1.3 La memoria principal (RAM)
Diferentes arquitecturas de
computadores varían mucho en
cuanto al número de modos de
direccionamiento que ofrecen
desde el hardware.
1.7 Proceso de ensamblado y ligado
• Edición • Link
Los archivos fuente de código De la misma forma que el ensamblado, la
ensamblador deben estar en
formato ASCII standard. Para esto fase de liga se lleva a cabo con el LINK.
puede usarse cualquier editor que Este puede ser invocado de la misma forma
permita crear archivos sin formato,
e.g. Edlin, Edit, Write, El editor del que el MASM. Los parámetros que este
Turbo Pascal, Works, Word, requiere son:
WordStar, etcétera.
LINK objeto
• Ensamblado [,[ejecutable][,[mapa][,[librería]]]]][opciones][
;]
El ensamblado se lleva a cabo invocando al
MASM. Este puede ser invocado, usando
una línea de comando, de la siguiente • Ejecución
manera: Para la ejecución del programa simplemente basta teclear su
nombre en el prompt de MS-DOS y teclear ENTER
MASM archivo [,
[objeto][,[listado][,[cross]]]]][opciones][;]
CODE ENDS
end principio
¡Al fin! ¡Llegamos al final! Aquí está el
código fuente completo: CODE
SEGMENT
ASSUME CS:CODE, DS:CODE,
SS:CODE, ES:CODE ORG 100h
principio:
mov ah, 0Fh mov ah, 0 int 10h
lea dx, mensaje_a_mostrar mov ah, 9h
mensaje_a_mostrar db "¡Hola
En este momento podemos comenzar a escribir las Mundo!$",0
verdaderas instrucciones que le indicarán a la
computadora que mensaje y como lo va a desplegar. CODE ENDS
end principio
1.8 Desplegado de mensajes en el monitor
Podemos concluir que el lenguaje ensamblador es una de las bases de la
programación actual ya que todos los lenguajes de alto nivel se basaron o se
programaron en este.
Para esta unidad veremos todos los tipos de ensambladores y sus características que dependen
mucho del tipo de procesador donde se escribe los programas y del computador donde se va a correr
el programa.
Un ensamblador es el programa que convierte un listado de código fuente,
escrito en un fichero de texto, en código objeto, es decir, lenguaje máquina
(el que finalmente interpretará el procesador) en el que sólo les faltan las
referencias a rutinas externas.
Decremento Incremento
Ejemplo:
exclusiva)
OR (suma lógica)
INSTRUCCION COMENTARIO
MOV CL, 03
INSTRUCCION COMENTARIO
MOV AL, 10110111B ; AL = 10110111
MOV CL, 03
SHL AL, 01 ; AL = 01101110 Un corrimiento a MOV BL, ; BL = 10110111
10110111B
la izquierda
SHR BL, 01 ; BL = 11011011 Una rotación a la izquierda
SHLAL, CL ; AL = 01110000 Tres corrimientos SHR BL, CL ; BL = 00001011 Tres rotaciones a la izquierda
mas
1. Tomando como ejemplo el número binario 101011 lo
dividimos en grupos de 4 bits y nos queda:
10; 1011
4. 2BH (Donde la H representa la base
2. Rellenando con ceros el último grupo (el de la hexadecimal)
izquierda):
0010; 1011
0010 = 2; 1011 = 11
2.15 Captura y almacenamiento de 2.16 Operaciones básicas sobre
datos numéricos archivos de disco
En la etapa de diseño se plantea el problema a resolver y MOVS. Mueve un byte, palabra o palabra doble desde
se propone la mejor solución, creando diagramas una localidad en memoria direccionada por SI a otra
esquemáticos utilizados para el mejor planteamiento de la localidad direccionada por DI.
solución.
LODS. Carga desde una localidad de memoria
La codificación del programa consiste en escribir el direccionada por SI un byte en AL, una palabra en AX o
programa en algún lenguaje de programación; en este caso una palabra doble en EAX.
específico en ensamblador, tomando como base la solución
propuesta en el paso anterior. STOS. Almacena el contenido de los registros AL, AX, o EAX
en la memoria direccionada por SI.
La traducción al lenguaje máquina es la creación del
programa objeto, esto es, el programa escrito como una CMPS. Compara localidades de memoria de un byte,
secuencia de ceros y unos que pueda ser interpretado por palabra o palabra doble direccionadas por SI, DI.
el procesador.
SCAS. Compara el contenido de AL, AX o EAX con el
La prueba del programa consiste en verificar que el contenido de una localidad de memoria direccionada por
programa funcione sin errores, o sea, que haga lo que tiene SI.
que hacer.
El lenguaje ensamblador es muy complejo y no es sencillo de aprender, pero el
lenguaje ensamblador es y seguirá siendo una de las herramientas de programación
mas utilizadas por todas las personas que desean tener un mayor grado de
comprensión sobre el funcionamiento de los dispositivos.
Este lenguaje nos brinda todas las herramientas con las cuales nosotros podemos
innovar y seguir aprendiendo de ello. El lenguaje ensamblador no ha sido relegado,
en la actualidad existe una gran cantidad de programas ensambladores que nos
permiten programar en ambientes operativos gráficos como Windows, Linux, iOS,
entre otros.
Introducción
Como sabemos en un programa de alto nivel se fraccionan partes de código para hacer una
determinada tarea llamados métodos y esos métodos se mandan a llamar dentro de un método
principal que correrá todo el programa completo pues es igual en el lenguaje ensamblador solo que
se denominan con un nombre diferente.
La programación modular es uno de los métodos de diseño más flexibles y poderosos para el
mejoramiento de la productividad de un programa. Usando la programación modular el problema
se divide en módulos, donde cada una de los cuales ejecuta una única actividad o tarea y se
codifican independientemente de otros modulo. Cada uno de estos módulos se analiza, se codifica
y se prueba de preferencia por separado.
PROC nomProc proposición
3.1 Procedimientos
[proposición]
Es una colección de
instrucciones que realizan ...
una tarea específica.
Dependiendo de su extensión ENDP [nomProc]
y complejidad, un programa
puede contener uno, algunos La llamada a un procedimiento
o inclusive cientos de tiene la siguiente forma:
procedimientos.
CALL nomProc
[proposición]
...
ENDM [nombMacro]
3.2 Macros
Conclusión
En el lenguaje ensamblador hay dos conceptos muy importantes que nos ayudan mucho a la hora de
programar y son los procedimientos y los macros.
Un procedimiento es un conjunto de instrucciones que tienen como finalidad ejecutar una tarea en especifico
dentro del programa, creo que es muy obvia la función de los procedimientos y como vimos que los lenguajes
de alto nivel que se utilizan en la actualidad de igual manera funcionan mediante instrucciones que realizan
actividades o una cierta actividad pues esta característica como vemos viene desde el lenguaje ensamblador.
Las instrucciones son indispensables en todo tipo de programa ya que sin estas el programa no haría nada. Los
procedimientos son similares a los macros.
Lo macros nos ofrecen la facilidad de codificar una sola vez un conjunto de instrucciones y reutilizar el código
las veces que sean necesarias dentro de un programa.
Introducción
4.1 El buffer de video en modo texto
Se llama modo texto a cualquier modo de El uso del modo texto se hizo popular a principios de
vídeo de un ordenador en el que el contenido los años 1970, cuando los terminales de texto
de la pantalla se representa internamente en
términos de caracteres textuales en lugar de orientados a vídeo empezaron a reemplazar a
píxeles individuales los teletipos en el uso interactivo de las computadoras.
Se define una transferencia elemental de información
como la transmisión de una sola unidad de información
(normalmente un byte) entre el procesador y el periférico
4.2 Acceso a discos en lenguaje ensamblador o viceversa.
02 Recibir un dato
FreeDiskSpace
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20I.pdf
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20II.pdf
https://prezi.com/y5nr_na4vfjr/unidad-2/
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20III.pdf
http://yesenializbethguerrerogarcia.blogspot.com/2017/04/unidad-iii-
modularizacion.html
https://prezi.com/lamscama-n5m/unidad-3-modularizacion-lenguaje-de-
interfaz/
http://itpn.mx/recursosisc/6semestre/lenguajesdeinterfaz/Unidad%20IV.pdf
https://prezi.com/fza8xd9uiku8/unidad-4-programacion-de-dispositivos/