Lenguaje de maquina
Fue el primer lenguaje utilizado en la programación
para las primeras computadoras, pero dejó de utilizarse por su dificultad y complicación,
siendo sustituido por otros lenguajes más fáciles de aprender y utilizar, y que
además reducen la posibilidad de cometer errores.
La información que hace que el hardware de la
computadora realice una determinada actividad se llama instrucción, por
consiguiente una instrucción es un conjunto de unos y ceros, las instrucciones
así formadas equivalen a acciones elementales de la máquina, por lo que al
conjunto de dichas instrucciones que son interpretadas directamente por la
máquina se denomina lenguaje máquina.
El lenguaje máquina es el único lenguaje que puede
ejecutar una computadora, es específico en cada arquitectura, es un código que
es interpretado directamente por el microprocesador, está compuesto por un
conjunto de instrucciones ejecutadas en secuencia que representan acciones que
la máquina podrá tomar. Es el único que entiende directamente la computadora,
utiliza el alfabeto binario que consta de los dos únicos símbolos 0 y 1,
denominados bits; 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.
Las instrucciones preparadas en cualquier lenguaje de
máquina tienen por lo menos dos partes, el comando u operación, que dice a la
computadora cuál es la función que va a realizar y la instrucción es el
operando, que indica a la computadora donde hallar o almacenar los datos y
otras instrucciones que se van a manipular; el número de operandos de una
instrucción varía en las distintas computadoras, una instrucción en lenguaje
máquina puede, por ejemplo, representarse de la siguiente forma:
011011001010010011110110
Las ventajas de esto son evidentes, ya que para el hombre
resulta más fácil manipular grupos de caracteres y la traducción se haría de
manera automática. Por ejemplo, se podría escribir:
Lenguaje
ensamblador
El lenguaje ensamblador es el lenguaje de
programación utilizado para escribir programas informáticos de bajo nivel, y
constituye la representación más directa del Código máquina específico para
cada arquitectura de computadoras legible por un programador. Aun hoy se
utiliza en la programación de handler o manipuladores de dispositivos de
hardware.
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 decir, lenguaje de bajo
nivel. El lenguaje ensamblador es difícilmente portable, es decir, un código
escrito para un 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 secciones especiales del código
programado.
Los programas hechos en lenguaje ensamblador, al ser
programado directamente sobre Hardware, son generalmente más rápidos y consumen
menos recursos del sistema (memoria RAM y ROM). Al programar cuidadosamente en
lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente
y ocupan menos espacio que con lenguajes de alto nivel.
Ejemplo
El siguiente es un ejemplo
del programa clásico Hola mundo escrito para la arquitectura de procesador x86
(bajo el sistema operativo DOS) en modo texto (por defecto).
.model small
.stack
.data
Cadena1 DB 'Hola Mundo.$'
.code
.stack
.data
Cadena1 DB 'Hola Mundo.$'
.code
programa:
mov ax, @data
mov ds, ax
mov dx, offset Cadena1
mov ah, 9
int 21h
int 20h
end programa
mov ax, @data
mov ds, ax
mov dx, offset Cadena1
mov ah, 9
int 21h
int 20h
end programa
Existen
dos tipos principales de traductores de los lenguajes de programación de alto
nivel:
Compilador:
que analiza el programa fuente y lo traduce a otro equivalente escrito en otro
lenguaje (por ejemplo, en el lenguaje de la máquina). Su acción equivale a la
de un traductor humano, que toma un libro y produce otro equivalente escrito en
otra lengua. Un compilador suele generar programas más rápidos y eficientes, ya
que el análisis del lenguaje fuente se hace una sola vez, durante la generación
del programa equivalente. En cambio, un intérprete se ve obligado generalmente
a analizar cada instrucción tantas veces como se ejecute (incluso miles o
millones de veces).
Intérprete:
que analiza el programa fuente y lo ejecuta directamente, sin generar ningún
código equivalente. Su acción equivale a la de un intérprete humano, que
traduce las frases que oye sobre la marcha, sin producir ningún escrito
permanente. Un intérprete facilita la búsqueda de errores, pues la ejecución de
un programa puede interrumpirse en cualquier momento para estudiar el entorno
(valores de las variables, etc.). Además, el programa puede modificarse sobre
la marcha, sin necesidad de volver a comenzar la ejecución.
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
microprocesador
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.
Tipos
de ensambladores
Ensambladores
básicos: Son de muy bajo nivel, y su tarea consiste básicamente
en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas
tales como los modos.
Ensambladores
modulares 32-bits o de alto nivel: Son ensambladores que
aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits,
muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con
programas con estructuras de 16 bits. Además de realizar la misma tarea que los
anteriores, permitiendo también el uso de macros, permiten utilizar estructuras
de programación más complejas propias de los lenguajes de alto nivel.
Continuacion del tema (Instruciones) en:
http://orgbasicadelcomputadorymas.blogspot.com/2014/10/instrucciones.html
http://orgbasicadelcomputadorymas.blogspot.com/2014/10/instrucciones.html
Mas informacion en:
No hay comentarios:
Publicar un comentario