Ir al contenido principal

Ventajas de Programar en Ensamblador

El lenguaje de programador ensamblador es muy conocido por todos los programadores, pero también muy excluido, una pregunta que puede surgir es la siguiente, ¿por qué programar en ensamblador cuando se tienen diversos lenguajes de alto nivel que facilitan el desarrollo? A continuación, se mencionan algunos motivos para ello.
Como se sabe, existen muchos lenguajes de programación de alto nivel como C, C++, C#, JAVA entre otros que presentan muchas características avanzadas y en algunos casos en conjunto con IDE (Integrated Development Environment) aceleran y facilitan mucho la elaboración de software.
Sintaxis Ensamblador. Fuente

Hay que tener en cuenta que estos lenguajes de alto nivel, a pesar de ser muy útiles, muchas veces los programas resultantes requieren de computadoras con recursos informáticos considerables para poder ejecutarse de forma óptima. Recordemos que todo código escrito en lenguaje de alto nivel es transcrito de forma automática a lenguaje ensamblador, y al ser de forma automatizada se genera mucho código extra en los programas que es necesario al traducirlo de esta forma, pero, si el mismo programa, hubiera sido escrito por un programador directamente en ensamblador sería más pequeño y eficiente. Esto ultimo es una de las ventajas de desarrollar en este lenguaje tan particular, existen muchas más como las siguientes.
  • Velocidad: Un código (Programa) bien hecho en ensamblador será más rápido que los desarrollados en lenguajes de alto nivel.
  • Tamaño: Como ya se mencionó, en ensamblador el programador incluye solo el código necesario y no añade código extra como los lenguajes de alto nivel debido a su traducción automatizada.
  • El programador tiene un control más directo con la computadora.
  • Por las razones anteriores, se puede utilizar el ensamblador para obtener la máxima capacidad de una maquina computacional, como dispositivos portátiles (generalmente con menos recursos de computo) y consolas de videojuegos para obtener un rendimiento alto en gráficos.

Evidentemente no todo es perfecto, algunas desventajas pueden ser: un tiempo largo de desarrollo de software, mayor dificultad para entender el código del programa, por lo general los programas solo funcionaran en la arquitectura en la cual se escribió el programa, entre otras.

Hay muchas razonas por la cual se puede optar por programar en ensamblador, hay que analizar el caso, pero como se mencionó hay situaciones en las cuales este lenguaje obtiene todo su potencial del cual los programadores le pueden sacar mucho provecho y de esta manera desarrollar programas más óptimos, aunque evidentemente no debemos olvidarnos del todo de los lenguajes de alto nivel, ya que también tiene sus ventajas.

Referencias:

Comentarios

Entradas populares de este blog

Importancia de los Sistemas Numéricos en la Computación

Un sistema de numeración se define como un conjunto de símbolos y reglas que permiten representar datos numéricos. Además, los sistemas numéricos modernos se caracterizan por ser posicionales, ya que un símbolo tiene un peso según en la posición que se encuentre en la cifra numérica. Existen distintos sistemas numéricos modernos, los más comunes son: ·          Sistema Decimal : 0-1-2-3-4-5-6-7-8-9, (Diez símbolos) ·          Sistema Binario : 0-1, (Dos símbolos) ·          Sistema Octal : 0-1-2-3-4-5-6-7, (Ocho símbolos) ·          Sistema Hexadecimal : 0-1-2-3-4-5-6-7-8-9-A-B-C-D-E-F, (Dieciséis Símbolos) Todos los sistemas mencionados anteriormente tienen reglas y relaciones que permiten la realización de las operaciones básica que conocemos como la suma, resta, multiplicación, división. La siguiente imagen presenta una comparativa de los sistemas:   Fuente: http://e-ducativa.catedu.es/44700165/aula/archivos/repositorio//4750/4920/html/tabla1.jpg El

Ciclo Fetch Decode Execute

El encargado de ejecutar un programa en una computadora u otro sistema computacional es el CPU, lo realiza siguiendo el llamado ciclo Fetch Decode Execute, con este ciclo se ejecutan todas las tareas que una computadora puede realizar. Este ciclo tiene algunas variantes y conforme ha avanzado el tiempo y la tecnología ha sufrido algunos cambios, pero el ciclo básico se conforma de las siguientes etapas: Traer la instrucción: Se obtiene la instrucción desde memoria y se almacena en el registro del CPU para instrucciones. Decodificar la instrucción: Se identifica el modo de direccionamiento de la instrucción y la ubicación de los datos a tratar, ya sea de memoria, registro o instrucción directamente. Carga de Parámetros: Se ejecuta la lectura, cargando todos los datos identificados en el paso anterior. Ejecutar: Se ejecuta la instrucción ya configurada, realiza la tarea indicada, ya sea una suma, resta, almacenar información, extraer información etc. Almacenar: Se almacen

Arquitectura RISC y CISC

Cuando se desarrolla una aplicación, se utilizan por lo general lenguajes de programación de alto nivel como JAVA, C++, PYTHON etc. Pero estos lenguajes durante su proceso de compilación se transforman en lenguaje ensamblador, existen casos en los cuales se desarrolla un software directamente en el lenguaje ensamblador, pero para poder realizar esto último se necesita saber la arquitectura del dispositivo. A continuación, se explicarán las arquitecturas RISC y CISC. La arquitectura RISC, su nombre significa en inglés Reduce Instruction Set Computer, y CISC que significa en Complex Instruction set Computer. El primero hace referencia a un conjunto reducido de instrucciones en el procesador, mientras que el segundo se refiere a un conjunto complejo de instrucciones. Estos dos, forman las dos arquitecturas de procesadores que podemos encontrar en los computadores actuales, y cada uno tiene sus usos específicos y particularidades respecto al otro. CISC (Complex Instruction Set Co