Está en la página 1de 42

2.

6 Lenguaje maquina
Objetivos
• Aprender acerca del lenguaje maquina.
Subtemas de clase pasada
• 2.4 Base de datos jerárquica
• 2.5 Base de datos relacional
Subtemas que veremos hoy
• 2.6 Lenguaje maquina
Antes de comenzar..
•-
2.6 Lenguaje maquina
Aunque parezca increíble, dos números fueron los
encargados de lograr crear toda una revolución en el
mundo, no sólo informático sino en general. Estos dos
pequeños números se convirtieron en la base de todo
aquello que en la actualidad se relaciona con
los dispositivos electrónicos. 
-
El 1 y el 0, son números que forman parte del
conocido sistema binario un lenguaje que es utilizado
por todas las computadoras y que se conoce con el
nombre de lenguaje máquina.
¿Qué es el lenguaje máquina?
El lenguaje máquina es un grupo de datos que
conforman la parte física de la computadora, en otras
palabras, el hardware, y que hacen posible
el entender e interpretar los códigos binarios que se
encuentran entre los valores 0 y 1 para luego formar
cadenas de información y completar una instrucción.
-
Es el sistema de códigos interpretable directamente por
un circuito microprogramable, como el microprocesador
de una computadora. Este lenguaje se compone de un
conjunto de instrucciones que determinan acciones que
serán realizadas por la máquina. 
-
Y un programa de computadora consiste en una cadena
de estas instrucciones de lenguaje de máquina (más los
datos). Normalmente estas instrucciones son ejecutadas
en secuencia, con eventuales cambios de flujo causados
por el propio programa o eventos externos.
Definición de lenguaje máquina

Es importante mencionar que las computadoras


digitales no pueden entender el mismo idioma que los
seres humanos hablan, en lugar de esto, estas máquinas
utilizan un tipo de lenguaje binario al cual se le conoce
con el nombre de lenguaje de máquina, el cual encierra
una secuencia de instrucciones simples pueden ser
expresadas por medio de una serie de dígitos
binarios o bits.
-
El lenguaje máquina es el lenguaje elemental que
poseen todos los ordenadores y es un conjunto
de instrucciones codificadas, un sistema de códigos que
puede ser interpretado por circuitos micro programables
que además se encargan de determinar cuáles son
las acciones que deben de ser completadas o realizadas
por una máquina o computadora.
-

Cuando se hace la combinación de unos y cero, se


termina su preparación creando así una instrucción que
posteriormente llegará al microprocesador, se crea todo
un proceso conocido como el nombre de compilación,
ésta es la forma en la que los datos se reúnen para luego
colocar una especie de envoltorio digital que tendrá la
función de llevarlos hasta la máquina y hacer que pueda
entonces proceder con la ejecución.
-

Cuando las instrucciones llegan al ordenador se dan dos


operaciones importantes: la operación en sí y
el comando. De este proceso surge que el equipo
informático tenga la capacidad para saber cuál es
la instrucción que se le ha dado y cuál será
la función que debe cumplir. En otras palabras, los datos
son los que hacen posible poner en marcha
los procesos o establecer el lugar en donde se puede
generar el almacenamiento de datos.
Características
Las características que forman parte y que representan
al lenguaje máquina son las siguientes:
• Es conocido también con el nombre de código de
máquina.
• Es leído por medio de la unidad central de
procesamiento o CPU del ordenador.
• Se encuentra compuesto por números binarios
digitales que forman una larga secuencia de ceros y
unos.
-

• Resulta ser el único lenguaje que puede ser leído y entendido


por el hardware de un ordenador.
• Se interpreta de forma directa en el microprocesador.
• Para funcionar, utiliza el alfabeto binario, el cual solamente
consta de dos números, el 0 y el 1.
• A los números que forman parte del alfabeto se les conoce
también con el nombre de bits.
• Está compuesto de una serie de instrucciones sencillas que
dependen de la estructura del procesador para especificar
datos.
• No puede ser descifrada por el ser humano.
Para qué sirve

El lenguaje de máquina tiene una función bastante


especial y al mismo tiempo de gran importancia pues es
el responsable de reunir todas
aquellas instrucciones que recibe una determinada
máquina con respecto a cuándo se deben
de llevar o realizar los procesos para los cuales
previamente haya sido programada. Es el responsable
de que todas las máquinas y dispositivos pueden llegar a
cumplir sus funciones.
Historia

Muchos eventos de gran importancia han sucedido en el


mundo desde el momento en el que se inventaron
las primeras calculadoras, las cuales surgieron en
el siglo XVII. Mucho tiempo antes de que existieran las
computadoras, en el año 1936, Alan Turing logró
formalizar la idea abstracta sobre el computador y para
ello utilizó un modelo de procesamiento que tenía la
capacidad de leer ceros y unos en una cinta
infinita o memoria y que además se movilizaba
y escribía en función a una tabla definida en la máquina,
lo que se conoció luego como programa.
-
Con el paso del tiempo, se dieron aportes
importantísimos y las computadoras fueron surgiendo
poco a poco. Con ellas, también se empezaron a crear
los primeros lenguajes de programación los cuales al
inicio utilizaban conjuntos de instrucciones en código
hexagonal. Se considera que el primer lenguaje de alto
nivel fue el lenguaje máquina.
-
Es importante mencionar que fue Claude Elwood
Shannon, quien escribió el libro Analysis of Relay
and Switching Circuits que logró sentar las bases para la
correcta aplicación del álgebra de Boole en todas las
redes de conmutación, un tipo de circuitos de
interruptores eléctricos que define el estado de salida.
Tipos de lenguaje máquina

Los tipos de lenguaje que están relacionados con el


lenguaje de máquina que existen se mencionan a
continuación:
• Lenguaje de bajo nivel: este tipo de lenguaje brinda
muy poca o ningún tipo de abstracción del
microprocesador en un ordenador para luego ser
llevado al lenguaje de máquina.
-
• Lenguaje de medio nivel: es un tipo de lenguaje de
programación bastante precisos que se utilizan en
algunos tipos de aplicaciones, como por ejemplo, la
creación de los sistemas operativos pues hacen posible
un manejo abstracto sin perder la eficiencia de los
lenguajes de bajo nivel.
• Lenguaje de alto nivel: tiene como características
principal su capacidad para poder expresar algoritmos
de forma adecuada.
Ventajas del lenguaje máquina

Las principales ventajas que pueden ser obtenidas


cuando se utiliza el lenguaje de máquina se mencionan a
continuación:
• Brinda la capacidad de poder transferir
programas hacia la memoria sin que éstos deban de
ser traducidos posteriormente.
• Hace que la velocidad de las aplicaciones de ejecución
sea superior a otros tipos de lenguajes de
programación.
Desventajas

Algunas de sus desventajas son:


• Tiene cierto grado de dificultad.
• Es un poco lento en términos de codificación.
• Brinda poca fiabilidad pues tiene problemas para
poder verificar y colocar los puntos en los programas.
• Es importante mencionar que hoy en día, son más sus
desventajas, por lo que ha dejado de utilizarse el
lenguaje de máquina.
Ejemplos de lenguaje máquina
Son ejemplos de lenguaje de máquina los siguientes:
• Hola mundo
• 01001000 01101111 01101100 01100001 00100000
01101101 01110101 01101110 01100100 01101111
Ensamblador (Assambly)
El Lenguaje Ensamblador (Assambly) esta diseñado para
una computadora especifica, es decir, en los lenguajes
de alto nivel no se necesita conocer la arquitectura de
una computadora para programar, en el Ensamblador si,
se programara de manera mas correcta para
una determinada familia de Microprocesadores.
-
El lenguaje ensamblador expresa las instrucciones de
una forma más natural al hombre a la vez que muy
cercana al microcontrolador, ya que cada una de esas
instrucciones se corresponde con otra en código
máquina.
-
El programa escrito en lenguaje ensamblador se
denomina código fuente (*.asm). El programa
ensamblador proporciona a partir de este fichero el
correspondiente código máquina, que suele tener la
extensión *.hex.
REGISTROS INTERNOS DE LA UNIDAD
CENTRAL DE PROCESO (UCP)

La UCP o CPU tiene 14 registros internos, cada uno de


ellos de 16 bits (una palabra). Los bits están enumerados
de derecha a izquierda, de tal modo que el bit menos
significativo es el bit 0. Los registros se pueden clasificar
de la siguiente forma:
-

• AX: Registro acumulador. Es el principal empleado en


las operaciones aritméticas.
• BX: Registro base. Se usa para indicar un
desplazamiento.
• CX: Registro contador. Se usa como contador en los
bucles.
• DX: Registro de datos. También se usa en las
operaciones aritméticas.
-
Estos registros son de uso general y también pueden ser
utilizados como registros de 8 bits, para utilizarlos como
tales es necesario referirse a ellos como por ejemplo: AH
y AL, que son los bytes alto (high) y bajo (low) del
registro AX. Esta nomenclatura es aplicable también a
los registros BX, CX y DX.
Registros de segmentos

• CS: Registro de segmento de código. Contiene la dirección de las


instrucciones del programa.
• DS: Registro segmento de datos. Contiene la dirección del área
de memoria donde se encuentran los datos del programa.
• SS: Registro segmento de pila. Contiene la dirección del
segmento de pila. La pila es un espacio de memoria temporal
que se usa para almacenar valores de 16 bits (palabras).
• ES: Registro segmento extra. Contiene la dirección del segmento
extra. Se trata de un segmento de datos adicional que se utiliza
para superar la limitación de los 64Kb del segmento de datos y
para hacer transferencias de datos entre segmentos.
Registros punteros de pila
• SP: Puntero de la pila. Contiene la dirección relativa al
segmento de la pila.
• BP: Puntero base. Se utiliza para fijar el puntero de pila
y así poder acceder a los elementos de la pila.
Registros índices
• SI: Índice fuente.
• DI: Índice destino.
Puntero de instrucciones
• IP: Registro puntero de instrucción o contador de
programa (PC). Contiene el desplazamiento de la
siguiente instrucción a ejecutar respecto al segmento
de código en ejecución. Por lo tanto, la dirección
completa de la siguiente instrucción sería CS:IP. La
única forma de influir en este registro es de forma
indirecta mediante instrucciones de bifurcación.
Registro de banderas (flags)
Cada bandera es un bit y se usa para registrar la
información de estado y de control de las operaciones
del microprocesador. Hay nueve banderas (los 7 bits
restantes no se utilizan): Banderas de estado: Registran
el estado del procesador, normalmente asociado a una
comparación o a una instrucción aritmética.
-
• CF: Bandera de acareo.
• OF: Bandera de desbordamiento (aritmético).
• ZF: Bandera de resultado 0 o comparación igual.
• SF: Bandera de resultado o comparación negativa.
• PF: Bandera de paridad (número par de bits).
-
• AF: Bandera auxiliar. Indica si hay necesidad de ajuste
en las operaciones aritméticas con números
• BCD. Banderas de control:
• DF: Bandera de dirección. Controla la dirección de las
operaciones con cadenas de caracteres incrementando
o decrementando automáticamente los registros
índices (SI y DI)
• IF: Bandera de interrupciones. Indica si están
permitidas o no las interrupciones de los dispositivos
externos.
Suma name "add-sub"
org 100h
mov al, 5 ; bin=00000101b
mov bl, 10 ; hex=0ah or bin=00001010b
; 5 + 10 = 15 (decimal) or hex=0fh or bin=00001111b
add bl, al
; 15 - 1 = 14 (decimal) or hex=0eh or bin=00001110b
sub bl, 1
; print result in binary:
mov cx, 8
print: mov ah, 2 ; print function.
mov dl, '0'
test bl, 10000000b ; test first bit.
jz zero
mov dl, '1'
zero: int 21h
shl bl, 1
loop print

; print binary suffix:


mov dl, 'b'
int 21h
; wait for any key press:
mov ah, 0
int 16h
ret
-
•-
Gracias por su atención
-
•-

También podría gustarte