Lenguaje de Maquina - PDF
Lenguaje de Maquina - PDF
Lenguaje de Maquina - PDF
LENGUAJE DE MAQUINA
INGENIERIA DE SISTEMAS
YOPAL
2019
2
LENGUAJE DE MAQUINA
INGENIERO ELECTRONICO
INGENIERIA DE SISTEMAS
YOPAL
2019
3
Tabla de contenido
Lenguaje de maquina ....................................................................................................................5
Código de maquina.......................................................................................................................5
Mover ...........................................................................................................................................6
Afectar el flujo del programa .......................................................................................................6
Lenguaje ensamblador ..................................................................................................................7
Características de lenguaje ensamblador ................................................................................. 7-8
Operador de funcionamiento ........................................................................................................9
Operador ..................................................................................................................................9
Tipos de operadores .................................................................................................................9
Operadores aritméticos.............................................................................................................9
Operadores relacionales..........................................................................................................10
Operadores lógicos ................................................................................................................11
Operador a nivel de bit .................................................................................................... 11-12
Ventajas y desventajas ................................................................................................................13
Lenguaje de alto nivel............................................................................................................ 14-15
4
Tablas
Tabla 1. Operadores aritméticos ................................................................................................ 9-10
Tabla 2. Operadores relacionales ...................................................................................................10
Tabla 3. Cierto o falso....................................................................................................................10
Tabla 4. Operadores lógicos .........................................................................................................11
Tabla 5. Operadores a nivel de bit .................................................................................................12
5
Lenguaje de maquina
expresan en términos de la unidad de memoria más pequeña (bit) = digito binario 0 o 1, se debe
tener en cuenta que el lenguaje de máquina no proporciona margen para que las personas puedan
entenderlo.
Es indescifrable por el ser humano, tanto prácticamente como el código genético, o incluso a la
vista de los últimos avances médicos parece que es todavía menos comprensible que este, todo
código fuente en última instancia debe llevarse a un lenguaje máquina mediante el proceso de
Código de maquina
Está formado por instrucciones sencillas, que dependiendo de la estructura del procesador
pueden especificar:
Las operaciones más complejas se realizan combinando estas instrucciones sencillas, que pueden
ser ejecutadas secuencialmente o mediante instrucciones de control de flujo. Casi todas las
Mover
Llenar un registro con un valor constante o mover datos de una posición de memoria a un
registro o viceversa.
Computar
Sumar, restar, multiplicar o dividir los valores de dos registros, colocando el resultado en uno de
Saltar a otra posición en el programa y ejecutar instrucciones allí o saltar si se cumplen ciertas
condiciones o saltar a otra posición, pero guardar el punto de salida para retornar, algunas
computadoras incluyen instrucciones complejas dentro de sus capacidades. Una sola instrucción
compleja hace lo mismo que en otras computadoras puede requerir una larga serie de
instrucciones
7
Lenguaje ensamblador
informáticos de bajo nivel, es decir, de difícil lectura para el humano que no tiene conocimiento
sobre programación, y constituye la representación más directa del Código máquina específico
El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido
directamente por un ser humano ya que su estructura se acerca más bien al lenguaje máquina, es
Microprocesador, suele necesitar ser modificado, muchas veces en su totalidad para poder ser
usado en otra máquina distinta, aun con el mismo Microprocesador, solo pueden ser reutilizados
Hardware, son generalmente más rápidos y consumen menos recursos del sistema (memoria
programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto
nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un
También se puede controlar el tiempo en que tarda una Rutina en ejecutarse, e impedir que se
Operadores de funcionamiento
Operador
Es un símbolo (+, -, *, /, etc) que tiene una función predefinida (suma, resta, multiplicación,
etc) y que recibe sus argumentos de manera infija, en el caso de tener 2 argumentos de manera
Tipos de operadores
Operadores aritméticos
Operadores relacionales
Operadores lógicos
Operadores especiales.
Operadores Aritméticos
Los operadores aritméticos nos permiten, básicamente, hacer cualquier operación aritmética,
que necesitemos (ejemplo: suma, resta, multiplicación, etc). En la siguiente tabla se muestran los
Operadores relacionales
Al igual que en matemáticas, estos operadores nos permitirán evaluar las relaciones (igualdad,
mayor, menor, etc) entre un par de operandos (en principio, pensemos en números). Los
Operador Acción
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
== Igual
!= Distinto
El resultado de cualquier evaluación de este tipo, es un valor ``cierto'' (true) o ``falso'' (false).
La mayoría de lenguajes tienen algún tipo predefinido para representar estos valores (boolean,
bool, etc); sin embargo en C, se utilizan valores enteros para representar esto:
falso (false) 0
cierto (true) cualquier valor distinto de 0, aunque normalmente se usará el 1
11
Operadores lógicos
Como operadores lógicos designamos a aquellos operadores que nos permiten ``conectar'' un
par de propiedades.
Operador Acción
&& Conjunción (Y)
|| Disyunción (O)
! Negación
Al igual que con la igualdad hay que tener especial cuidado con los operadores && y , ya que
si ponemos solamente un & o un , nos estamos refiriendo a un ``and'' o un ``or'' a nivel de bit,
por lo que el código puede que no haga lo que queremos (o que algunas veces lo haga y otras
veces no).
En determinadas ocasiones nos puede interesar manipular datos a nivel de bit; por ejemplo,
activar o desactivar flags. Un flag es una ``variable'' que puede tomar 2 valores, por lo que se
no existen tipos predefinidos de un bit, lo que se suele hacer es agrupar varios flags en una
Para acceder a estos flags o simplemente para activarlos es necesario utilizar operadores a nivel
de bit.
12
Operador Acción
& AND a nivel de bit.
OR a nivel de bit.
XOR a nivel de bit.
Complemento.
>> Desplazamiento a la izquierda.
<< Desplazamiento a la derecha.
13
Ventajas y desventajas
El lenguaje de máquina cuenta con una serie de factores que debemos conocer para poder
máquina y que desde aquí actúe de forma independiente. Pero hay algunos inconvenientes que
Por ejemplo, la codificación podría ser mucho más rápida y los procesos pueden llegar a ser
este lenguaje tiene ciertas lagunas y la verificación de los programas requiere que seamos
detallistas de una forma notable para que no haya nada que se nos pase. Además, los procesos
que hayamos transmitido se podrán ejecutar en la CPU donde los hayamos configurado, pero no
tendrán soporte más allá de este equipo, requiriendo ajustes para ello.
14
Son lenguajes más afines con el programador en los que una instrucción puede representar varias
Artificial), etc.
Los lenguajes de alto nivel necesitan de un traductor que puede ser interpretador o compilador.
Los interpretadores o intérpretes, necesitan de un programa auxiliar que traduce en tiempo real
las instrucciones al lenguaje máquina, por lo tanto, cada vez que un programa interpretado se
Los lenguajes compilados son aquellos que necesitan de un compilador para la traducción al
lenguaje máquina. La traducción o compilación se hace solo una vez, y el resultado es un código
Depuración más sencilla: Debido a que el código es más legible, la depuración también
se hace más fácil. Con la ayuda editores (IDEs – Entornos de Desarrollo Integrados) la
Productividad aceptable: son más productivos que los lenguajes de alto nivel.
15
Los lenguajes estructurados, existen controles que le dan secuencia ordenada a la ejecución del
código. Dichos controles se implementan con estructuras definidas que permiten bifurcaciones
Una rama de los lenguajes de alto nivel son los lenguajes procedurales, donde la unidad
existen unas entradas y unas salidas y al programador que usa el procedimiento no le interesa su
Java y los lenguajes .Net de Microsoft también forman parte de los lenguajes de alto nivel, pero
para éste artículo es más importante su clasificación dentro de los lenguajes Orientados a
Objetos.
16
Referencias
Robert Britton: MIPS Assembly Language Programming. Prentice Hall. ISBN 0-13-142044-5
Centro de escritura Javeriano (Ed.). (2013). Normas APA. Cali, Colombia: Pontificia
Universidad Javeriana. Recuperado de:
http://portales.puj.edu.co/ftpcentroescritura/Recursos/Normasapa.pdf
John Waldron: Introduction to RISC Assembly Language Programming. Addison Wesley. ISBN
0-201-39828-1 7. La Enciclopedia Libre