You are on page 1of 7

LENGUAJES DE BAJO Y ALTO NIVEL

Lenguaje de Bajo nivel:

Son dependientes de la máquina, están diseñados para ejecutarse en una determinada


computadora. A esta categoría pertenecen las dos primeras generaciones, lenguaje maquina y
lenguaje ensamblador

Un lenguaje de programación de características bajo nivel es aquel en el que sus instrucciones


ejercen un control directo sobre el hardware y están condicionados por la estructura física de las
computadoras que lo soportan.

Primera generación o Lenguaje de máquina

Este lenguaje es el que la maquina o computadora entiende directamente utilizando el alfabeto


binario (0 y 1) .

Segunda generación o ensamblador

El lenguaje ensamblador, o assembler en inglés (assembly language y la abreviación ASM), es un


lenguaje de programación de bajo nivel.

Usos:

Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se contaba con
potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se utiliza con
frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la
manipulación directa de hardware, alto rendimiento, o un uso de recursos controlado y reducido.

Características

• El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya
que su estructura se acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.

• El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un


microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina
distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario
reescribirlo completamente.

• Los programas hechos por un programador experto en lenguaje ensamblador son


generalmente mucho más rápidos y consumen menos recursos del sistema (memoria RAM
y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. 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.
• Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por
un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy
ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el
lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están
disponibles en los lenguajes de alto nivel.

Tipos de ensambladores:

• Ensambladores cruzados

• macroensambladores

• Ensambladores de una fase

• Ensambladores de dos fases

• micro ensambladores

• Ensambladores residentes

Directivas CODE,DATA,STACK:

• Code Segment (Segmento de Código) El registro del CS direcciona el segmento de código

• Data segment (Segmento de Datos) El registro DS direcciona el segmento de datos.

• Stack Segment (Segmento de pila) El registro de segmento de la pila (SS)direcciona el


segmento de la pila

Registros del microprocesador

• AX: Acumulador

• BX: Registro base

• CD: Registro controlador

• DX: Registro de datos

• DS: Registro de segmento de datos

• ES: Registro de segmento extra

• SS: Registro de segmento pila

• CS: Registro de segmento de código

Instrucciones ensamblador

Instrucciones de transferencia de datos


• MOV: Asigna valores a los registros

• XCHG: Intercambia datos

• IN: Entrada datos

• OUT :Salida datos

Interrupciones de prueba, comparación y saltos

• TEST: Verifica

• CMP: Compara

JMP: Saltos

Interrupciones aritméticas

• add: suma

• sub: resta

• div: división

Interrupciones lógicas

• not: negación

• and: producto lógico

• or: suma lógica

• xor: suma lógica exclusiva

Interrupciones

• cli: borrar el indicador de interrupción

• int: interrupción

• int 21: interrupción 21, esta manda llamar al sistema operativo que ejecuta las
instrucciones anteriores

• int 20: interrupción 20, esta interrupción ejecuta lo anterior y termina el programa para
que no se cicle

Códigos ASCII

• El ASCII o American Standard Code for Information Interchange (Código estándar


americano para el intercambio de información)

• Fue creado en 1963 por el Comité Estadounidense de Estándares o "ASA", este organismo
cambio su nombre en 1969 por "Instituto Estadounidense de Estándares Nacionales" o
"ANSI" como se lo conoce desde entonces
Códigos BCD

• El BCD o Binary Coded Decimal (Código Binario-decimal) es un sistema que se utiliza para
representar números de forma que cada numero ocupe 4 bits , ósea que en un byte
podríamos almacenar dos números en vez de uno como el sistema ASCII.

Programa ensamblador

• El término ensamblador (del inglés assembler) 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 ósea 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

Existen programas ensambladores tales como:

• Turbo asambler

• Nasm

• Netwide Assembler

.Obj .Exe
Desarrollo de un programa ensamblador

Una vez que diseñas un programa en Lenguaje Ensamblador y vez que el programa esta
almacenado en un archivo, usa un Ensamblador para ejecutar la traducción a lenguaje
máquina. Sin embargo un programa en lenguaje máquina no puede ser ejecutado
directamente; este debe ser procesado por un enlazador. El enlazador crea una forma de
programa que está lista para ejecutarse. También permite que hagas programas separados
que serán unidos juntos para ejecutarse como un todo (de ahí el nombre “enlazador”).Bajo
DOS existen ciertas convenciones para nombrar a los archivos:

ASM

Archivos de código fuente

.OBJ

Archivos producidos por la conversión de código fuente a

código máquina.

.EXE
Archivos generados por el enlazamiento de archivos OBJ. Por ejemplo si creas un programa
fuente llamado TEST.ASM, el ensamblador lee el archivo, generando un modulo objeto
llamado TEST.OBJ y este a su vez puede ser leído por el enlazador para generar el programa
ejecutable o el load module llamado TEST.EXE.

Debug

Para correr un programa en debug hay que abrir la consola de windows (MSDOS) y teclear
debug, damos enter y saldrá un guion, para empezar a escribir el código tecleamos la letra
a (significa ASSEMBLER que es la instrucción para empezar a ensamblar o dar las
instrucciones, después de -a podemos escribir nuestro código a ejecutar, de lo contrario el
compilador no reconocerá ninguna instrucción)

Lenguajes de alto nivel

Un lenguaje de programación de alto nivel se caracteriza por expresar el algoritmo de una manera
adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.

Los lenguajes de alto nivel se crearon para que el usuario común pudiese solucionar un problema
de procesamiento de datos de una manera más fácil y rápida.

A finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba estos
inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman de tercera
generación o de nivel alto, en contraposición a los de bajo nivel o de nivel próximo a la máquina.

Ventajas:

 Genera un código más sencillo y comprensible.

 Escribir un código válido para diversas máquinas o sistemas operativos.

 Permite utilizar paradigmas de programación.

 Permite crear programas complejos en relativamente menos líneas de código.

Inconvenientes:

 Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina.

 Algunos requieren que la máquina cliente posea una determinada plataforma.

Principales lenguajes de alto nivel:

• VB.NET

• Ada

• ALGOL

• BASIC

• C Sharp

• FORTRAN
• Java

• Lisp

• Modula-2

• Perl

• PHP

• PL/1

• PL/SQL

• Python

• Ruby

• MATLAB

• Pascal

Ram dim sim rim


SIMM (siglas en inglés de Single In-line Memory Module), Es un formato para módulos de
memoria RAM que consisten en placas de circuito impreso sobre las que se montan los
integrados de memoria DRAM. Estos módulos se insertan en zócalos sobre la placa base. Los
contactos en ambas caras están interconectados, esta es la mayor diferencia respecto de sus
sucesores los DIMMs. Fueron muy populares desde principios de los 80 hasta finales de
los 90, el formato fue estandarizado por JEDEC bajo el número JESD-21C.
Los DIMM (sigla en inglés de dual in-line memory module, traducible como «módulo de
memoria con contactos duales») son, al igual que sus precedentes SIMM, módulos
de memoria RAM que se conectan directamente en las ranuras de la placa base de
las computadoras personales y están constituidos por pequeños circuitos impresos que
contienen circuitos integrados de memoria. Los módulos DIMM son reconocibles
externamente por tener cada contacto (o pin) de una de sus caras separado del opuesto de la
otra, a diferencia de los SIMM en que cada contacto está unido a su opuesto. La disposición
física de los DIMM duplica el número de contactos diferenciados con el bus.
Los módulos DIMM comenzaron a reemplazar a los SIMM como el tipo predominante de
memoria cuando los microprocesadores Intel Pentium tomaron dominio del mercado.
Un DIMM puede comunicarse con la caché a 64 bits (y algunos a 72 bits), a diferencia de los
32 bits de los SIMM.
El hecho de que los módulos en formato DIMM sean memorias de 64 bits, explica por qué no
necesitan emparejamiento. Los módulos DIMM poseen circuitos de memoria en ambos lados
de la placa de circuito impresa, y poseen a la vez, 84 contactos de cada lado, lo cual suma un
total de 168 contactos. Además de ser de mayores dimensiones que los módulos SIMM
(130x25 mm), estos módulos poseen una segunda muesca que evita confusiones.
Cabe observar que los conectores DIMM han sido mejorados para facilitar su inserción,
gracias a las palancas ubicadas a ambos lados de cada conector.
También existen módulos más pequeños, conocidos como SO DIMM (DIMM de contorno
pequeño), diseñados para computadoras portátiles. Los módulos SO DIMM sólo cuentan con
144 contactos en el caso de las memorias de 64 bits, y con 77 contactos en el caso de las
memorias de 32 bits.
RIMM, acrónimo de Rambus In-line Memory Module(Módulo de Memoria en Línea Rambus),
designa a los módulos de memoria RAM que utilizan una tecnología denominada RDRAM,
desarrollada por Rambus Inc. a mediados de los años 1990 con el fin de introducir un módulo
de memoria con niveles de rendimiento muy superiores a los módulos de memoria SDRAM de
100 MHz y 133 MHz disponibles en aquellos años.
Los módulos RIMM RDRAM cuentan con 184 pines y debido a sus altas frecuencias de
trabajo requieren de difusores de calor consistentes en una placa metálica que recubre los
chips del módulo. Se basan en un bus de datos de 16 bits y están disponibles en velocidades
de 300MHz (PC-600), 356 Mhz (PC-700), 400 MHz (PC-800) y 533 Mhz (PC-1066) que por su
pobre bus de 16 bits tenía un rendimiento 4 veces menor que la DDR. La RIMM de 533MHz
tiene un rendimiento similar al de un módulo DDR133, a pesar de que sus latencias son 10
veces peores que la DDR.
Inicialmente los módulos RIMM fueron introducidos para su uso en servidores basados
en Intel Pentium 4. Rambus no manufactura módulos RIMM sino que tiene un sistema de
licencias para que éstos sean manufacturados por terceros, siendo Samsung el principal
fabricante de estos.
A pesar de tener la tecnología RDRAM niveles de rendimiento muy superiores a la tecnología
SDRAM y las primeras generaciones de DDR RAM, debido al alto costo de esta tecnología no
tuvo gran aceptación en el mercado de PC. Su momento álgido tuvo lugar durante el periodo
de introducción del Pentium 4 para el cual se diseñaron las primeras placas base, pero Intel
ante la necesidad de lanzar equipos más económicos decidió lanzar placas base con soporte
para SDRAM y más adelante para DDR RAM desplazando esta última tecnología a los
módulos RIMM del mercado que ya no ofrecían ninguna ventaja.

You might also like