SlideShare una empresa de Scribd logo
1 de 6
Síntesis de información recopilada
Unidad 2
Pérez Camacho Jesús Asmeth
Ingeniería en Sistemas Computacionales,
Instituto Tecnológico de Tuxtla Gutiérrez,
Tuxtla Gutiérrez Chiapas
killerMstr1@gmail.com
Abstract—En este documento se recopila toda la información
sobre la unidad 2 de lenguajes de interfaz y se realiza una breve
y sintetizada descripción de cada subtema que corresponde a la
unidad.
I. INTRODUCCIÓN
Una computadora digital o, mejor dicho, su parte física,
sólo distingue datos de tipo binario, es decir, constituidos por
dos únicos valores a los que se denomina valor 0 y valor 1 y
que, físicamente, se materializan con tensiones comprendidas
entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente.
Para representar datos que contengan una información se
utilizan una serie de unos y ceros cuyo conjunto indica dicha
información.
La información que hace que el hardware de la computadora
realice una determinada actividad de llama instrucción. Por
consiguiente una instrucción es un conjunto de unos y ceros.
Las instrucciones así formadas equivalen a acciones elemen-
tales de la máquina, por lo que al conjunto de dichas instruc-
ciones que son interpretadas directamente por la máquina se
denomina lenguaje máquina.
El lenguaje máquina fue el primero que empleo el hombre
para la programación de las primeras computadoras. Una
instrucción en lenguaje máquina puede representarse de la
siguiente forma:
011011001010010011110110
Esta secuencia es fácilmente ejecutada por la computadora,
pero es de difícil interpretación, siendo aún más difícil la
interpretación de un programa (conjunto de instrucciones)
escrito de esta forma. Esta dificultad hace que los errores sean
frecuentes y la corrección de los mismos costosa, cuando no
imposible, al igual que la verificación y modificación de los
programas.
II. DESARROLLO DE CONTENIDOS
La programación en lenguaje ensamblador ofrece diferentes
ventajas. Un programa escrito en lenguaje ensamblador re-
quiere considerablemente menos memoria y tiempo de ejecu-
ción que un programa escrito en un lenguaje de alto nivel.
La programación en lenguaje ensamblador depende de la
arquitectura del computador sobre el cual se trabaja, esto
es importante para entender el funcionamiento interno de
la máquina, por ello al programar en ensamblador se llega
a comprender cómo funciona el computador y cómo es su
estructura básica. La capacidad de poder escribir programas
en lenguaje ensamblador es muy importante para los profe-
sionales del área de Sistemas Operativos debido a que los
programas residentes y rutinas de servicio de interrupción casi
siempre son desarrollados en lenguaje ensamblador. Además,
aun cuando la mayoría de los especialistas en programación
desarrolla aplicaciones en lenguajes de alto nivel, que son
más fáciles de escribir y de mantener, una práctica común
es codificar en lenguaje ensamblador aquellas rutinas que han
causado cuellos de botella en el procesamiento.
A. Ensamblador (y ligador) a utilizar
El término ensamblador se refiere a un tipo de programa
informático que se encarga de traducir un fichero fuente
escrito en un lenguaje ensamblador, a un fichero objeto que
contiene código máquina, ejecutable directamente por el mi-
croprocesador. El programa lee el fichero escrito en lenguaje
ensamblador y sustituye cada uno de los códigos nemotécnicos
que aparecen por su código de operación correspondiente
en sistema binario para la plataforma que se eligió como
destino en las opciones específicas del ensamblador. Podemos
distinguir entre dos tipos de ensambladores: Ensambladores
básicos. Ensambladores modulares 32-bits o de alto nivel.
Fig. 1. Diagrama de un ligador
Un ligador, es un programa que enlaza todos los progra-
mas o módulos obteniendo lo que denominamos programa
ejecutable. Es un programa que enlaza distintos módulos o
programas que poseen subprogramas. Además incorporan las
denominadas rutinas de librerías en caso de solicitarlas el
propio programa. La generación de un módulo ejecutable a
partir de una colección de procedimientos traducidos indepen-
dientemente requiere un ligador. Sus principales funciones son:
Enlazar código intermedio compilado independientemente en
un solo módulo de carga resolviendo las diferencias entre
Tokens. Incorpora las denominadas rutinas de librerías en
caso de solicitarlas el propio programa. Su función es reducir
procedimientos traducidos por separado y enlazarlos para
que se ejecuten como una unidad llamada programa binario
ejecutable.
B. Ciclos numéricos
Un ciclo, conocido también como iteración, es la repetición
de un proceso un cierto número de veces hasta que alguna
condición se cumpla. En estos ciclos se utilizan los brincos
"condicionales" basados en el estado de las banderas. Por
ejemplo la instrucción jnz que salta solamente si el resultado
de una operación es diferente de cero y la instrucción jz que
salta si el resultado de la operación es cero.
Fig. 2. Ejemplo saltos y ciclos
C. Captura básica de cadenas
En el lenguaje ensamblador el tipo de dato cadena (string)
no está definido, pero para fines de programación, una cadena
es definida como un conjunto de localidades de memoria
consecutivas que se reservan bajo el nombre de una variable.
Instrucciones para el manejo de strings Instrucciones para el
manejo de strings El lenguaje ensamblador cuenta con cinco
instrucciones para el manejo de cadenas: MOVS: Mueve un
byte o palabra desde una localidad de memoria a otra. LODS :
Carga desde la memoria un byte en AL o una palabra en AX.
STOS : Almacena el contenido del registro AL o AX en la
memoria. CMPS : Compara localidades de memoria de un byte
o palabra. SCAS : Compara el contenido de AL o AX con el
contenido de alguna localidad de memoria. Las instrucciones
para cadenas trabajan en conjunto con la instrucción CLD, la
cual permite establecer que el sentido en el que las cadenas
serán procesadas será de izquierda a derecha. Otra instrucción
importante es el prefijo de repetición REP, el cual permite que
una instrucción para manejo de cadenas pueda ser repetida
un número determinado de veces. Los registros índice juegan
un papel importante en el procesamiento de cadenas de datos,
el par de registros CS:SI indican la dirección de la cadena
original que será procesada, y el par ES:DI contienen la
dirección donde las cadenas pueden ser almacenadas.
Fig. 3. Captura básica de cadenas
D. Comparación y prueba
Existen dos instrucciones especiales en el microprocesador
8086: CMP y TEST. CMP (Comparar) compara si dos valores
son iguales o diferentes. Su funcionamiento es similar al de
la instrucción SUB (restar), sólo que no modifica el operando
de destino, solamente modifica las banderas de signo (SF),
de cero (ZF) y de acarreo (CF). Por ejemplo: CMP AX,33
Esta instrucción compara si el valor almacenado en el registro
AX es igual que el valor 33 en decimal. Por otro lado, la
instrucción TEST realiza la operación AND de los operandos
especificados sin que el resultado se almacene en algún reg-
istro, modificando únicamente ciertas banderas. Su aplicación
más común es la de probar si algún bit es cero. Por ejemplo:
Test AL,1 Esta instrucción prueba si el bit menos significativo
de AL es 1 y Test AL,128 prueba si el bit más significativo
de AL es 1. Por lo general estas instrucciones van seguidas
de alguna de las instrucciones de salto.
E. Saltos
Se basan completamente en los flags, pero están simplifica-
dos.
Los saltos podrían resumirse en un modo "Basic" de la
manera IF-THEN-GOTO de forma que cuando se cumple una
condición se salta a un sitio determinado.
He aquí los tipos de saltos condicionales (las letras en
mayúsculas son las instrucciones):
JO: Jump if overflow. Salta si el flag de desbordamiento
está a uno
Fig. 4. Ejemplo comparación y prueba
JNO: Jump if not overflow. Salta si el flag de desbor-
damiento está acero.
JC, JNAE, JB: Los tres sirven para lo mismo. Significan:
Jump if Carry, Jump if Not Above or Equal y Jump if Below.
Saltan por lo tanto si al haber una comparación el flag de
acarreo se pone a 1; es entonces equivalente a < en una
operación sin signo.
JNC, JAE, JNB: Otros tres que valen exactamente para lo
mismo. Jump if not Carry, Jump if Above or Equal y Jump
if Not Below. Saltan por tanto si al haber una comparación el
flag de acarreo vale 0, o sea, es equivalente al operador >=
El salto sin condiciones, con el que podremos cambiarel
control a cualquier punto del programa. Sería como el "Goto"
del Basic, simplemente transferir el control a otro punto del
programa. La orden esJMP (de Jump, salto) Si se recuerdan
los registros CS:IP, se podrá ver qué es lo que hace realmente
la instrucción, y no es más que incrementar o decrementar IP
para llegar a la zona del programa a la que queremos transferir
el control (IP es el Offset que indica la zona de memoria que
contiene la siguiente instrucción a ejecutar, y CS el segmento).
El formato más sencillo para el salto sería JMP 03424h, lo
que saltaría a esa zona. Pero es algo complejo calcular en qué
dirección va a estar esa instrucción, con lo que utilizaremos
etiquetas.
He aquí un ejemplo:
MOV AX,0CC34h
MOV CL,22h
JMP PALANTE
VUELVE:CMP BX,AX
JMP FIN
PALANTE: MOV BX,AX
JMP VUELVE
FIN: XOR CX,CX
F. Ciclos condicionales
Existen dos tipos de instrucciones de salto: las instrucciones
de salto condicional y las de salto incondicional. Las instruc-
ciones de salto condicional, revisan si ha ocurrido alguna
situación para poder transferir el control del programa a otra
sección.
La siguiente es una lista de las instrucciones de salto
condicional y su descripción:
Fig. 5. Tipos de saltos
JA o JNBE: Salta si está arriba o salta si no está por debajo
o si no es igual (jump if above or jump if not below or equal).
El salto se efectúa si la bandera de CF=0 o si la bandera ZF=0.
JAE o JNB: Salta si está arriba o es igual o salta si no está
por debajo (jump if above or equal or jump if not below). El
salto se efectúa si CF=0.
JB o JNAE: Salta si está por debajo o salta si no está por
arriba o es igual (jump if below or jump if not above or equal).
El salto se efectúa si CF=1.
JBE o JNA: Salta si está por debajo o es igual o salta si no
está por arriba (jump if below or equal or jump if not above).
El salto se efectúa si CF=1 o ZF=1.
JE o JZ: Salta si es igual o salta si es cero (jump if equal
or jump if zero). El salto se efectúa si ZF=1.
JNE o JNZ: Salta si no es igual o salta si no es cero (jump
if not equal or jump if not zero). El salto se efectúa si ZF=0.
JG o JNLE: Salta si es mayor o salta si no es menor o
igual (jump if greater or jump if not less or equal). El salto
se efectúa si ZF=0 u OF=SF.
JGE o JNL: Salta si es mayor o igual o salta si no es menor
(jump if greater or equal or jump if not less). El salto se efectúa
si SF=OF.
Fig. 6. Ciclos condicionales
G. Incremento y decremento
Son las más básicas a la hora de hacer operaciones con
registros INC:
Incrementar el valor de un registro o de cualquier posición
en memoria, en una unidad y DEC lo decrementa. INC Ax
Incrementa en una el valor de Ax DEC Ax Decrementa Ax,
le resta uno.
Estas 2 instrucciones equivalentes a "a++" , nos serviran
bastante como contadores para bucles.
Ejemplos:
INC AX ;AX=AX+1
INC VAR1 ;VAR1=VAR1+1
DEC AX ;AX=AX-1
DEC VAR1 ;VAR1=VAR1-1 y de las variables almacenadas
en memoria.
Fig. 7. Instrucciones aritméticas e incremento y decremento
H. Captura de cadenas con formato
Permiten el movimiento, comparación o búsqueda rápida en
bloques de datos:
MOVC: transferir carácter de una cadena.
MOVW: transferir palabra de una cadena.
CMPC: comparar carácter de una cadena.
CMPW: comparar palabra de una cadena.
SCAC: buscar carácter de una cadena.
SCAW: buscar palabra de una cadena.
LODC: cargar carácter de una cadena.
LODW: cargar palabra de una cadena.
STOC: guardar carácter de una cadena.
STOW: guardar palabra de una cadena.
REP: repetir.
CLD: poner a 0 el indicador de dirección.
STD: poner a 1 el indicador de dirección.
Fig. 8. Orden de captura de cadenas
I. Instrucciones aritméticas
Existen 8 instrucciones aritméticas básicas: ADD (Suma),
SUB (Resta), MUL (Multiplicación sin signo), DIV (División
sin signo), IMUL (Multiplicación con signo), IDIV (División
con signo), INC (Incremento unitario) y DEC (Decremento
unitario). Las instrucciones ADD y SUB permiten realizar
sumas y restas sencillas y tienen el siguiente formato: . ADD
Destino, Fuente . SUB Destino, Fuente Ejemplos:
ADD AX,BX ;AX=AX+BX
ADD AX,10 ;AX=AX+10
SUB AX,BX ;AX=AX-BX
SUB AX,10 ;AX=AX-10
En las operaciones de suma y resta el resultado siempre es
almacenado en el operando de destino, el cual puede ser un
registro o una variable.
Fig. 9. Instrucciones aritméticas
J. Manipulación de la pila
La pila es un grupo de localidades de memoria que se
reservan con la finalidad de proporcionar un espacio para el
almacenamiento temporal de información.
La pila de los programas es del tipo LIFO (Last In First
Out, Último en entrar, Primero en salir).
Para controlar la pila el microprocesador cuenta con dos
instrucciones básicas: Push (Meter) y Pop (sacar).
El formato de estas instrucciones es el siguiente: Push
operando Pop operando Cuando se ejecuta la instrucción Push,
el contenido del operando se almacena en la última posición
de la pila.
Por ejemplo: Si AX se carga previamente con el valor 5,
una instrucción Push AX almacenaría el valor 5 en la última
posición de la pila. Por otro lado la instrucción Pop saca el
último dato almacenado en la pila y lo coloca en el operando.
Siguiendo el ejemplo anterior, la instrucción Pop BX obtendría
el número 5 y lo almacenaría en el registro BX.
K. Obtención de cadena con representación decimal
En las computadoras el formato natural para la aritmética
es el binario. La representación del número decimal 1; 527 en
los tres formatos decimales:
ASCII 31 35 32 37 (cuatro bytes)
BCD desempaquetado 01 05 02 07 (cuatro bytes)
BCD empaquetado 15 27 (dos bytes)
El procesador realiza aritmética en valores ASCII y BCD
un dígito a la vez. Ya que los datos son ingresados desde
un teclado significan que están en formato ASCII, la repre-
sentación en memoria de un número decimal ingresado tal
como 1234 es 31323334H. Pero realizar aritmética sobre tal
número implica un tratamiento especial. Las instrucciones
AAA y AAS realizan aritmética de manera directa sobre
números ASCCI
L. Instrucciones lógicas
Las instrucciones lógicas, son utilizadas para realizar op-
eraciones lógicas sobre los operandos.
AND OR NEG TEST NOT XOR AND: Condición de
ejecución y del estado de su bit.
NEG: Genera el complemento a 2.
NOT: Lleva a cabo la negación bit por bit.
OR: Inclusivo lógico.
TEST: Compara lógicamente los operandos.
XOR: OR exclusivo.
Estas trabajan sobre los bits de sus operandos. Para verificar
el resultado de operaciones recurrimos a las operaciones cmp
y test.
Fig. 10. Ejemplo instrucción lógica de saltos
M. Desplazamiento y rotación
Existen muchas operaciones que requieren desplazar valores
de los bits que componen un número a la izquierda o a la
derecha. Los operadores de desplazamiento de bits suelen
utilizarse para llevar a cabo operaciones muy rápidas de
multiplicación y de división de enteros. Un desplazamiento a
la izquierda equivale a una multiplicación por 2 y un desplaza-
miento a la derecha una división por 2. Un desplazamiento no
es una rotación. A medida que se desplazan los bits hacia otro
extremo se van rellenando con ceros por el otro extremo. Los
bits que salen se pierden.
Rotación:
RCL DESTINO,CONTADOR: Rota destino a través de
carry a la izquierda contador veces
RCR DESTINO,CONTADOR: Rota destino a través de
carry a la derecha contador veces
ROL DESTINO,CONTADOR: Rota destino a la izquierda
contador veces
ROR DESTINO,CONTADOR: Rota destino a la derecha
contador veces
SAL DESTINO,CONTADOR: Desplaza destino a la
izquierda contador veces y rellena con ceros
SAR DESTINO,CONTADOR: Desplaza destino a la
derecha contador veces y rellena con bit
SF SHR DESTINO,CONTADOR: Desplaza destino a la
derecha contador veces y rellena con ceros.
NOTA: El DESTINO va a ser la dirección y el CONTADOR
es el número de veces que se retira la instrucción.
Fig. 11. Instrucciones de rotación
N. Obtención de una cadena con la representación hexadec-
imal
Instrucciones de Desplazamiento Lineal AL/SHL (De-
splazamiento aritmético a la izquierda).
Sintaxis:
SAL/SHL destino, contador
Indicadores:
Desplaza a la derecha los bits del operando destino el
número de bits especificado en el segundo operando. Los bits
de la izquierda se rellenan con el bit de signo del primer
operando. Si el número de bits a desplazares 1 se puede
especificar directamente, si es mayor se especifica a través
de CL.
Ejemplos: SAR AX, CL
SAR BP,1
SHR (Desplazamiento lógico a la derecha).
Fig. 12. Instrucciones de desplazamiento lineal (obtencion de una cadena con
la representación hexadecimal)
Sintaxis:
SHR destino, contador
Fig. 13. Ejemplo desplazamiento a la derecha
O. Captura y almacenamiento de datos numéricos
Permiten la opción de introducir algún número en un pro-
grama deseado, en el cual dando las instrucciones necesarias
se pueden además de ser capturadas almacenarlas dentro del
programa.
Para la introducción de los datos ya sea numéricos o
carácter es necesario la interacción a través de un dispositivo
como: teclado, ratón, monitor, etc. Los datos se almacenan en
memoria en el orden en que han sido declarados y podemos
acceder a ellos usando el nombre dado en la declaración.
P. Operaciones básicas sobre archivos de disco
Las operaciones basicas que es posibles llevar a cabo sobre
las unidades de disco son:
create (crear)
delete (eliminar)
open (abrir)
close (cerrar)
read (leer)
write (escribir)
append (añadir)
seek (buscar)
get attributes (obtener atributos)
set attributes (establecer atributos)
rename (cambiar nombre)
Fig. 14. Diagrama de operaciones(Ensamblador, ligador, archivos)
III. CONCLUSIÓN
El lenguaje ensamblador es muy complejo y no es sencillo
de aprender, pero el leguaje ensamblador es y seguirá siendo
una de las herramientas de programación más 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. [?]
REFERENCES
[1] Brey, B.; Los microprocesadores de Intel: Arquitectura, Programación e
Interfaces; Ed. Prentice Hall; 3ł Edición; 1995.
[2] http://www.infor.uva.es/~cllamas/fi2/fi2-2.pdf
[3] Cecilio Blanco Viejo, Electrónica digital
http://books.google.com.mx/books?id=myOXwYAhOwgC&pg=PA209&dq=MEMORIA+
[4] Rojas, A.; Ensamblador Básico; Ed. Computec; 2ł Edición; 1995.
[5] Raúl Alcaraz Martínez, Aspectos hard-
ware y software del microprocesador 6800
https://books.google.com.mx/books?id=p07XAgAAQBAJ&pg=PA36&dq=ensamblador+

Más contenido relacionado

La actualidad más candente

Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesKim Sorel Rush
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARESAnel Sosa
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpuIsaí Beto Matz Mijes
 
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosHugo Alberto Rivera Diaz
 
Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Javier Alvarez
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPUIvan Porras
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesadorFernando Camacho
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instruccionesLely
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensambladoreveTalavera
 

La actualidad más candente (20)

Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redes
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Organización y estructura interna del cpu
Organización y estructura interna del cpuOrganización y estructura interna del cpu
Organización y estructura interna del cpu
 
Expresiones regulares
Expresiones regularesExpresiones regulares
Expresiones regulares
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Arquitecturas de computadoras
Arquitecturas de computadorasArquitecturas de computadoras
Arquitecturas de computadoras
 
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datosNuevas tecnologías y aplicaciones de los sistemas de bases de datos
Nuevas tecnologías y aplicaciones de los sistemas de bases de datos
 
UML
UMLUML
UML
 
Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...Administración de la Memoria, organización y administración del almacenamient...
Administración de la Memoria, organización y administración del almacenamient...
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Manejo perifericos
Manejo perifericosManejo perifericos
Manejo perifericos
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Administración de procesos y del procesador
Administración de procesos y del procesadorAdministración de procesos y del procesador
Administración de procesos y del procesador
 
Segmetación de instrucciones
Segmetación de instruccionesSegmetación de instrucciones
Segmetación de instrucciones
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
2.3.1
2.3.12.3.1
2.3.1
 
Unidad 2 ensamblador
Unidad 2   ensambladorUnidad 2   ensamblador
Unidad 2 ensamblador
 

Destacado

Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfazjomapuga
 
Manipulacion de la pila!!
Manipulacion de la pila!!Manipulacion de la pila!!
Manipulacion de la pila!!romo91
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basicoGustavo Davila
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfazXavi Flores
 
Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assemblerANDREA
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPdisenarUniminuto
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPdisenarUniminuto
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPdisenarUniminuto
 
Lenguaje ensamblador y programacion para ibm pc y compatibles
Lenguaje ensamblador y programacion para ibm pc y compatiblesLenguaje ensamblador y programacion para ibm pc y compatibles
Lenguaje ensamblador y programacion para ibm pc y compatiblesmarii Carmona
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfazLuiS YmAY
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibridagabo
 
comparacion de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcp
comparacion  de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcpcomparacion  de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcp
comparacion de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcpedwar loja
 

Destacado (20)

Div, idiv, Neg ensamblador
Div, idiv, Neg ensambladorDiv, idiv, Neg ensamblador
Div, idiv, Neg ensamblador
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Manipulacion de la pila!!
Manipulacion de la pila!!Manipulacion de la pila!!
Manipulacion de la pila!!
 
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Lenguaje ensamblador basico
Lenguaje ensamblador basicoLenguaje ensamblador basico
Lenguaje ensamblador basico
 
Microcontrolador
MicrocontroladorMicrocontrolador
Microcontrolador
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Instrucciones lenguaje assembler
Instrucciones lenguaje assemblerInstrucciones lenguaje assembler
Instrucciones lenguaje assembler
 
Unidad 2-lenguajes-de-interfaz
Unidad 2-lenguajes-de-interfazUnidad 2-lenguajes-de-interfaz
Unidad 2-lenguajes-de-interfaz
 
INSTALACIÓN DE PROLOG EN WINDOWS
INSTALACIÓN DE PROLOG EN WINDOWSINSTALACIÓN DE PROLOG EN WINDOWS
INSTALACIÓN DE PROLOG EN WINDOWS
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Lenguaje ensamblador y programacion para ibm pc y compatibles
Lenguaje ensamblador y programacion para ibm pc y compatiblesLenguaje ensamblador y programacion para ibm pc y compatibles
Lenguaje ensamblador y programacion para ibm pc y compatibles
 
Unidadi. lenguajes de interfaz
Unidadi.   lenguajes de interfazUnidadi.   lenguajes de interfaz
Unidadi. lenguajes de interfaz
 
Equipo 6 programacion hibrida
Equipo 6 programacion hibridaEquipo 6 programacion hibrida
Equipo 6 programacion hibrida
 
Mapa
MapaMapa
Mapa
 
comparacion de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcp
comparacion  de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcpcomparacion  de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcp
comparacion de tcp/ip version 4 y 6 con la comparacion del modelo osi con tcp
 
Tcp ip
Tcp ipTcp ip
Tcp ip
 

Similar a UNIDAD 2 PROGRAMACIÓN BASICA

Similar a UNIDAD 2 PROGRAMACIÓN BASICA (20)

Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Introduccion al assembler[1]
Introduccion al assembler[1]Introduccion al assembler[1]
Introduccion al assembler[1]
 
Introduccion al assembler
Introduccion al assemblerIntroduccion al assembler
Introduccion al assembler
 
Evolucion
EvolucionEvolucion
Evolucion
 
Evolucion
EvolucionEvolucion
Evolucion
 
Evolucion
EvolucionEvolucion
Evolucion
 
Evolucion
EvolucionEvolucion
Evolucion
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Arquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransigArquitectura resumen capitulos 5 y 6 efrain saransig
Arquitectura resumen capitulos 5 y 6 efrain saransig
 
Emsamblador
EmsambladorEmsamblador
Emsamblador
 
Estructuras de Control
Estructuras de Control Estructuras de Control
Estructuras de Control
 
Actividad de Inicio Programación
Actividad de Inicio ProgramaciónActividad de Inicio Programación
Actividad de Inicio Programación
 
Yy
YyYy
Yy
 
NASM
NASM NASM
NASM
 
Estructuras de Control
Estructuras de ControlEstructuras de Control
Estructuras de Control
 
Tutorial ensamblador
Tutorial ensambladorTutorial ensamblador
Tutorial ensamblador
 
Programacin estructurada
Programacin estructuradaProgramacin estructurada
Programacin estructurada
 
Estructura .COM
Estructura .COMEstructura .COM
Estructura .COM
 

Más de Instituto Tecnológico de Tuxtla Gutiérrez (9)

Reporte de instalación prolog MAC OS
Reporte de instalación prolog MAC OSReporte de instalación prolog MAC OS
Reporte de instalación prolog MAC OS
 
EJERCICIOS DE RECURSIVIDAD EN HASKELL
EJERCICIOS DE RECURSIVIDAD EN HASKELLEJERCICIOS DE RECURSIVIDAD EN HASKELL
EJERCICIOS DE RECURSIVIDAD EN HASKELL
 
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD DEL SUELO PARA EL CULTIVO DEL ...
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD DEL SUELO PARA EL CULTIVO DEL ...SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD DEL SUELO PARA EL CULTIVO DEL ...
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD DEL SUELO PARA EL CULTIVO DEL ...
 
SISTEMA NEURODIFUSO PARA EL CONTROL DE TEMPERATURA PARA EL CULTIVO DEL COCCUS...
SISTEMA NEURODIFUSO PARA EL CONTROL DE TEMPERATURA PARA EL CULTIVO DEL COCCUS...SISTEMA NEURODIFUSO PARA EL CONTROL DE TEMPERATURA PARA EL CULTIVO DEL COCCUS...
SISTEMA NEURODIFUSO PARA EL CONTROL DE TEMPERATURA PARA EL CULTIVO DEL COCCUS...
 
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...
SISTEMA NEURODIFUSO PARA EL CONTROL DE HUMEDAD RELATIVA PARA EL CULTIVO DEL C...
 
UNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓNUNIDAD 3 MODULARIZACIÓN
UNIDAD 3 MODULARIZACIÓN
 
PRÁCTICA 2 ENSAMBLADOR - JESÚS ASMETH PÉREZ CAMACHO
PRÁCTICA 2 ENSAMBLADOR - JESÚS ASMETH PÉREZ CAMACHOPRÁCTICA 2 ENSAMBLADOR - JESÚS ASMETH PÉREZ CAMACHO
PRÁCTICA 2 ENSAMBLADOR - JESÚS ASMETH PÉREZ CAMACHO
 
PRÁCTICA 1 ENSAMBLADOR- JESÚS ASMETH PEREZ CAMACHO
PRÁCTICA 1 ENSAMBLADOR- JESÚS ASMETH PEREZ CAMACHOPRÁCTICA 1 ENSAMBLADOR- JESÚS ASMETH PEREZ CAMACHO
PRÁCTICA 1 ENSAMBLADOR- JESÚS ASMETH PEREZ CAMACHO
 
Reporte de codigo productos medios
Reporte de codigo productos mediosReporte de codigo productos medios
Reporte de codigo productos medios
 

Último

Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfEDILIAGAMBOA
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressionsConsueloSantana3
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 

Último (20)

Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
PPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdfPPT_Formación integral y educación CRESE (1).pdf
PPT_Formación integral y educación CRESE (1).pdf
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Uses of simple past and time expressions
Uses of simple past and time expressionsUses of simple past and time expressions
Uses of simple past and time expressions
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 

UNIDAD 2 PROGRAMACIÓN BASICA

  • 1. Síntesis de información recopilada Unidad 2 Pérez Camacho Jesús Asmeth Ingeniería en Sistemas Computacionales, Instituto Tecnológico de Tuxtla Gutiérrez, Tuxtla Gutiérrez Chiapas killerMstr1@gmail.com Abstract—En este documento se recopila toda la información sobre la unidad 2 de lenguajes de interfaz y se realiza una breve y sintetizada descripción de cada subtema que corresponde a la unidad. I. INTRODUCCIÓN Una computadora digital o, mejor dicho, su parte física, sólo distingue datos de tipo binario, es decir, constituidos por dos únicos valores a los que se denomina valor 0 y valor 1 y que, físicamente, se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una información se utilizan una serie de unos y ceros cuyo conjunto indica dicha información. La información que hace que el hardware de la computadora realice una determinada actividad de llama instrucción. Por consiguiente una instrucción es un conjunto de unos y ceros. Las instrucciones así formadas equivalen a acciones elemen- tales de la máquina, por lo que al conjunto de dichas instruc- ciones que son interpretadas directamente por la máquina se denomina lenguaje máquina. El lenguaje máquina fue el primero que empleo el hombre para la programación de las primeras computadoras. Una instrucción en lenguaje máquina puede representarse de la siguiente forma: 011011001010010011110110 Esta secuencia es fácilmente ejecutada por la computadora, pero es de difícil interpretación, siendo aún más difícil la interpretación de un programa (conjunto de instrucciones) escrito de esta forma. Esta dificultad hace que los errores sean frecuentes y la corrección de los mismos costosa, cuando no imposible, al igual que la verificación y modificación de los programas. II. DESARROLLO DE CONTENIDOS La programación en lenguaje ensamblador ofrece diferentes ventajas. Un programa escrito en lenguaje ensamblador re- quiere considerablemente menos memoria y tiempo de ejecu- ción que un programa escrito en un lenguaje de alto nivel. La programación en lenguaje ensamblador depende de la arquitectura del computador sobre el cual se trabaja, esto es importante para entender el funcionamiento interno de la máquina, por ello al programar en ensamblador se llega a comprender cómo funciona el computador y cómo es su estructura básica. La capacidad de poder escribir programas en lenguaje ensamblador es muy importante para los profe- sionales del área de Sistemas Operativos debido a que los programas residentes y rutinas de servicio de interrupción casi siempre son desarrollados en lenguaje ensamblador. Además, aun cuando la mayoría de los especialistas en programación desarrolla aplicaciones en lenguajes de alto nivel, que son más fáciles de escribir y de mantener, una práctica común es codificar en lenguaje ensamblador aquellas rutinas que han causado cuellos de botella en el procesamiento. A. Ensamblador (y ligador) a utilizar El término ensamblador se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por el mi- croprocesador. El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador. Podemos distinguir entre dos tipos de ensambladores: Ensambladores básicos. Ensambladores modulares 32-bits o de alto nivel. Fig. 1. Diagrama de un ligador Un ligador, es un programa que enlaza todos los progra- mas o módulos obteniendo lo que denominamos programa ejecutable. Es un programa que enlaza distintos módulos o
  • 2. programas que poseen subprogramas. Además incorporan las denominadas rutinas de librerías en caso de solicitarlas el propio programa. La generación de un módulo ejecutable a partir de una colección de procedimientos traducidos indepen- dientemente requiere un ligador. Sus principales funciones son: Enlazar código intermedio compilado independientemente en un solo módulo de carga resolviendo las diferencias entre Tokens. Incorpora las denominadas rutinas de librerías en caso de solicitarlas el propio programa. Su función es reducir procedimientos traducidos por separado y enlazarlos para que se ejecuten como una unidad llamada programa binario ejecutable. B. Ciclos numéricos Un ciclo, conocido también como iteración, es la repetición de un proceso un cierto número de veces hasta que alguna condición se cumpla. En estos ciclos se utilizan los brincos "condicionales" basados en el estado de las banderas. Por ejemplo la instrucción jnz que salta solamente si el resultado de una operación es diferente de cero y la instrucción jz que salta si el resultado de la operación es cero. Fig. 2. Ejemplo saltos y ciclos C. Captura básica de cadenas En el lenguaje ensamblador el tipo de dato cadena (string) no está definido, pero para fines de programación, una cadena es definida como un conjunto de localidades de memoria consecutivas que se reservan bajo el nombre de una variable. Instrucciones para el manejo de strings Instrucciones para el manejo de strings El lenguaje ensamblador cuenta con cinco instrucciones para el manejo de cadenas: MOVS: Mueve un byte o palabra desde una localidad de memoria a otra. LODS : Carga desde la memoria un byte en AL o una palabra en AX. STOS : Almacena el contenido del registro AL o AX en la memoria. CMPS : Compara localidades de memoria de un byte o palabra. SCAS : Compara el contenido de AL o AX con el contenido de alguna localidad de memoria. Las instrucciones para cadenas trabajan en conjunto con la instrucción CLD, la cual permite establecer que el sentido en el que las cadenas serán procesadas será de izquierda a derecha. Otra instrucción importante es el prefijo de repetición REP, el cual permite que una instrucción para manejo de cadenas pueda ser repetida un número determinado de veces. Los registros índice juegan un papel importante en el procesamiento de cadenas de datos, el par de registros CS:SI indican la dirección de la cadena original que será procesada, y el par ES:DI contienen la dirección donde las cadenas pueden ser almacenadas. Fig. 3. Captura básica de cadenas D. Comparación y prueba Existen dos instrucciones especiales en el microprocesador 8086: CMP y TEST. CMP (Comparar) compara si dos valores son iguales o diferentes. Su funcionamiento es similar al de la instrucción SUB (restar), sólo que no modifica el operando de destino, solamente modifica las banderas de signo (SF), de cero (ZF) y de acarreo (CF). Por ejemplo: CMP AX,33 Esta instrucción compara si el valor almacenado en el registro AX es igual que el valor 33 en decimal. Por otro lado, la instrucción TEST realiza la operación AND de los operandos especificados sin que el resultado se almacene en algún reg- istro, modificando únicamente ciertas banderas. Su aplicación más común es la de probar si algún bit es cero. Por ejemplo: Test AL,1 Esta instrucción prueba si el bit menos significativo de AL es 1 y Test AL,128 prueba si el bit más significativo de AL es 1. Por lo general estas instrucciones van seguidas de alguna de las instrucciones de salto. E. Saltos Se basan completamente en los flags, pero están simplifica- dos. Los saltos podrían resumirse en un modo "Basic" de la manera IF-THEN-GOTO de forma que cuando se cumple una condición se salta a un sitio determinado. He aquí los tipos de saltos condicionales (las letras en mayúsculas son las instrucciones): JO: Jump if overflow. Salta si el flag de desbordamiento está a uno
  • 3. Fig. 4. Ejemplo comparación y prueba JNO: Jump if not overflow. Salta si el flag de desbor- damiento está acero. JC, JNAE, JB: Los tres sirven para lo mismo. Significan: Jump if Carry, Jump if Not Above or Equal y Jump if Below. Saltan por lo tanto si al haber una comparación el flag de acarreo se pone a 1; es entonces equivalente a < en una operación sin signo. JNC, JAE, JNB: Otros tres que valen exactamente para lo mismo. Jump if not Carry, Jump if Above or Equal y Jump if Not Below. Saltan por tanto si al haber una comparación el flag de acarreo vale 0, o sea, es equivalente al operador >= El salto sin condiciones, con el que podremos cambiarel control a cualquier punto del programa. Sería como el "Goto" del Basic, simplemente transferir el control a otro punto del programa. La orden esJMP (de Jump, salto) Si se recuerdan los registros CS:IP, se podrá ver qué es lo que hace realmente la instrucción, y no es más que incrementar o decrementar IP para llegar a la zona del programa a la que queremos transferir el control (IP es el Offset que indica la zona de memoria que contiene la siguiente instrucción a ejecutar, y CS el segmento). El formato más sencillo para el salto sería JMP 03424h, lo que saltaría a esa zona. Pero es algo complejo calcular en qué dirección va a estar esa instrucción, con lo que utilizaremos etiquetas. He aquí un ejemplo: MOV AX,0CC34h MOV CL,22h JMP PALANTE VUELVE:CMP BX,AX JMP FIN PALANTE: MOV BX,AX JMP VUELVE FIN: XOR CX,CX F. Ciclos condicionales Existen dos tipos de instrucciones de salto: las instrucciones de salto condicional y las de salto incondicional. Las instruc- ciones de salto condicional, revisan si ha ocurrido alguna situación para poder transferir el control del programa a otra sección. La siguiente es una lista de las instrucciones de salto condicional y su descripción: Fig. 5. Tipos de saltos JA o JNBE: Salta si está arriba o salta si no está por debajo o si no es igual (jump if above or jump if not below or equal). El salto se efectúa si la bandera de CF=0 o si la bandera ZF=0. JAE o JNB: Salta si está arriba o es igual o salta si no está por debajo (jump if above or equal or jump if not below). El salto se efectúa si CF=0. JB o JNAE: Salta si está por debajo o salta si no está por arriba o es igual (jump if below or jump if not above or equal). El salto se efectúa si CF=1. JBE o JNA: Salta si está por debajo o es igual o salta si no está por arriba (jump if below or equal or jump if not above). El salto se efectúa si CF=1 o ZF=1. JE o JZ: Salta si es igual o salta si es cero (jump if equal or jump if zero). El salto se efectúa si ZF=1. JNE o JNZ: Salta si no es igual o salta si no es cero (jump if not equal or jump if not zero). El salto se efectúa si ZF=0. JG o JNLE: Salta si es mayor o salta si no es menor o igual (jump if greater or jump if not less or equal). El salto se efectúa si ZF=0 u OF=SF. JGE o JNL: Salta si es mayor o igual o salta si no es menor (jump if greater or equal or jump if not less). El salto se efectúa si SF=OF. Fig. 6. Ciclos condicionales G. Incremento y decremento Son las más básicas a la hora de hacer operaciones con registros INC: Incrementar el valor de un registro o de cualquier posición en memoria, en una unidad y DEC lo decrementa. INC Ax Incrementa en una el valor de Ax DEC Ax Decrementa Ax, le resta uno. Estas 2 instrucciones equivalentes a "a++" , nos serviran bastante como contadores para bucles.
  • 4. Ejemplos: INC AX ;AX=AX+1 INC VAR1 ;VAR1=VAR1+1 DEC AX ;AX=AX-1 DEC VAR1 ;VAR1=VAR1-1 y de las variables almacenadas en memoria. Fig. 7. Instrucciones aritméticas e incremento y decremento H. Captura de cadenas con formato Permiten el movimiento, comparación o búsqueda rápida en bloques de datos: MOVC: transferir carácter de una cadena. MOVW: transferir palabra de una cadena. CMPC: comparar carácter de una cadena. CMPW: comparar palabra de una cadena. SCAC: buscar carácter de una cadena. SCAW: buscar palabra de una cadena. LODC: cargar carácter de una cadena. LODW: cargar palabra de una cadena. STOC: guardar carácter de una cadena. STOW: guardar palabra de una cadena. REP: repetir. CLD: poner a 0 el indicador de dirección. STD: poner a 1 el indicador de dirección. Fig. 8. Orden de captura de cadenas I. Instrucciones aritméticas Existen 8 instrucciones aritméticas básicas: ADD (Suma), SUB (Resta), MUL (Multiplicación sin signo), DIV (División sin signo), IMUL (Multiplicación con signo), IDIV (División con signo), INC (Incremento unitario) y DEC (Decremento unitario). Las instrucciones ADD y SUB permiten realizar sumas y restas sencillas y tienen el siguiente formato: . ADD Destino, Fuente . SUB Destino, Fuente Ejemplos: ADD AX,BX ;AX=AX+BX ADD AX,10 ;AX=AX+10 SUB AX,BX ;AX=AX-BX SUB AX,10 ;AX=AX-10 En las operaciones de suma y resta el resultado siempre es almacenado en el operando de destino, el cual puede ser un registro o una variable. Fig. 9. Instrucciones aritméticas J. Manipulación de la pila La pila es un grupo de localidades de memoria que se reservan con la finalidad de proporcionar un espacio para el almacenamiento temporal de información. La pila de los programas es del tipo LIFO (Last In First Out, Último en entrar, Primero en salir). Para controlar la pila el microprocesador cuenta con dos instrucciones básicas: Push (Meter) y Pop (sacar). El formato de estas instrucciones es el siguiente: Push operando Pop operando Cuando se ejecuta la instrucción Push, el contenido del operando se almacena en la última posición de la pila. Por ejemplo: Si AX se carga previamente con el valor 5, una instrucción Push AX almacenaría el valor 5 en la última posición de la pila. Por otro lado la instrucción Pop saca el último dato almacenado en la pila y lo coloca en el operando. Siguiendo el ejemplo anterior, la instrucción Pop BX obtendría el número 5 y lo almacenaría en el registro BX. K. Obtención de cadena con representación decimal En las computadoras el formato natural para la aritmética es el binario. La representación del número decimal 1; 527 en los tres formatos decimales:
  • 5. ASCII 31 35 32 37 (cuatro bytes) BCD desempaquetado 01 05 02 07 (cuatro bytes) BCD empaquetado 15 27 (dos bytes) El procesador realiza aritmética en valores ASCII y BCD un dígito a la vez. Ya que los datos son ingresados desde un teclado significan que están en formato ASCII, la repre- sentación en memoria de un número decimal ingresado tal como 1234 es 31323334H. Pero realizar aritmética sobre tal número implica un tratamiento especial. Las instrucciones AAA y AAS realizan aritmética de manera directa sobre números ASCCI L. Instrucciones lógicas Las instrucciones lógicas, son utilizadas para realizar op- eraciones lógicas sobre los operandos. AND OR NEG TEST NOT XOR AND: Condición de ejecución y del estado de su bit. NEG: Genera el complemento a 2. NOT: Lleva a cabo la negación bit por bit. OR: Inclusivo lógico. TEST: Compara lógicamente los operandos. XOR: OR exclusivo. Estas trabajan sobre los bits de sus operandos. Para verificar el resultado de operaciones recurrimos a las operaciones cmp y test. Fig. 10. Ejemplo instrucción lógica de saltos M. Desplazamiento y rotación Existen muchas operaciones que requieren desplazar valores de los bits que componen un número a la izquierda o a la derecha. Los operadores de desplazamiento de bits suelen utilizarse para llevar a cabo operaciones muy rápidas de multiplicación y de división de enteros. Un desplazamiento a la izquierda equivale a una multiplicación por 2 y un desplaza- miento a la derecha una división por 2. Un desplazamiento no es una rotación. A medida que se desplazan los bits hacia otro extremo se van rellenando con ceros por el otro extremo. Los bits que salen se pierden. Rotación: RCL DESTINO,CONTADOR: Rota destino a través de carry a la izquierda contador veces RCR DESTINO,CONTADOR: Rota destino a través de carry a la derecha contador veces ROL DESTINO,CONTADOR: Rota destino a la izquierda contador veces ROR DESTINO,CONTADOR: Rota destino a la derecha contador veces SAL DESTINO,CONTADOR: Desplaza destino a la izquierda contador veces y rellena con ceros SAR DESTINO,CONTADOR: Desplaza destino a la derecha contador veces y rellena con bit SF SHR DESTINO,CONTADOR: Desplaza destino a la derecha contador veces y rellena con ceros. NOTA: El DESTINO va a ser la dirección y el CONTADOR es el número de veces que se retira la instrucción. Fig. 11. Instrucciones de rotación N. Obtención de una cadena con la representación hexadec- imal Instrucciones de Desplazamiento Lineal AL/SHL (De- splazamiento aritmético a la izquierda). Sintaxis: SAL/SHL destino, contador Indicadores: Desplaza a la derecha los bits del operando destino el número de bits especificado en el segundo operando. Los bits de la izquierda se rellenan con el bit de signo del primer operando. Si el número de bits a desplazares 1 se puede especificar directamente, si es mayor se especifica a través de CL. Ejemplos: SAR AX, CL SAR BP,1 SHR (Desplazamiento lógico a la derecha).
  • 6. Fig. 12. Instrucciones de desplazamiento lineal (obtencion de una cadena con la representación hexadecimal) Sintaxis: SHR destino, contador Fig. 13. Ejemplo desplazamiento a la derecha O. Captura y almacenamiento de datos numéricos Permiten la opción de introducir algún número en un pro- grama deseado, en el cual dando las instrucciones necesarias se pueden además de ser capturadas almacenarlas dentro del programa. Para la introducción de los datos ya sea numéricos o carácter es necesario la interacción a través de un dispositivo como: teclado, ratón, monitor, etc. Los datos se almacenan en memoria en el orden en que han sido declarados y podemos acceder a ellos usando el nombre dado en la declaración. P. Operaciones básicas sobre archivos de disco Las operaciones basicas que es posibles llevar a cabo sobre las unidades de disco son: create (crear) delete (eliminar) open (abrir) close (cerrar) read (leer) write (escribir) append (añadir) seek (buscar) get attributes (obtener atributos) set attributes (establecer atributos) rename (cambiar nombre) Fig. 14. Diagrama de operaciones(Ensamblador, ligador, archivos) III. CONCLUSIÓN El lenguaje ensamblador es muy complejo y no es sencillo de aprender, pero el leguaje ensamblador es y seguirá siendo una de las herramientas de programación más 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. [?] REFERENCES [1] Brey, B.; Los microprocesadores de Intel: Arquitectura, Programación e Interfaces; Ed. Prentice Hall; 3ł Edición; 1995. [2] http://www.infor.uva.es/~cllamas/fi2/fi2-2.pdf [3] Cecilio Blanco Viejo, Electrónica digital http://books.google.com.mx/books?id=myOXwYAhOwgC&pg=PA209&dq=MEMORIA+ [4] Rojas, A.; Ensamblador Básico; Ed. Computec; 2ł Edición; 1995. [5] Raúl Alcaraz Martínez, Aspectos hard- ware y software del microprocesador 6800 https://books.google.com.mx/books?id=p07XAgAAQBAJ&pg=PA36&dq=ensamblador+