Ir al contenido principal

Estructuras de Control en Ensamblador

En los lenguajes de alto nivel disponemos de estructuras de control como “if” o “else” que nos permiten dar sentido a nuestro código, pero estas estructuras no están presentes en un lenguaje de bajo nivel como el ensamblador o no de la misma forma, como se detalla a continuación.

Estructuras Condicionales:
Estos tipos son los if, if-else, elif, switch, los más comunes en los lenguajes de alto nivel y los más utilizados. Estas estructuras no están del todo ausentes en lenguaje ensamblador, ya que al fin y al cabo estas instrucciones se convierten a ensamblador, en ensamblador se cuenta con instrucciones como CMP o TEST(Para comparar o evaluar) en el caso de ARM y sus equivalentes en las demás arquitecturas de procesadores. Para poder crear los condicionales se debe utilizar una combinación de estas (CMP, TEST, ...) junto con las instrucciones de Branch, Jump, etc según corresponda.

Ejemplos If Else:
If Else en Lenguaje C
If Else en Lenguaje Ensamblador


Estructuras de Repetición:
Estas estructuras son los llamados ciclos o iteraciones que se ejecutan mientras se cumpla una condición, el while, do while, for, foreach son unas de las más conocidas y utilizadas en los lenguajes de alto nivel, para poder realizar estas estructuras en ensamblador necesitamos combinar las instrucciones de (CMP o TEST, ….) para poder tener un condicional, junto con los Branch, Jump, entre otros para los saltos y el uso de etiquetas, esto para poder realizar el salto a la etiqueta en la que estoy(El ciclo) si se cumple la condición establecida, de esta manera poder realizar un ciclo. Esto lo podemos adaptar para desarrollar las otras estructuras cíclicas.

Ejemplo While:
While en Lenguaje C
While en Ensamblador


Como se detalla, los ciclos while o condicionales if, no están implementados, sino que se deben realizar haciendo uso de diferentes instrucciones que el lenguaje ensamblador ofrece para desarrollar en el.

Referencias:
Origen de los ejemplos

Comentarios

Entradas populares de este blog

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...

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. L...

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...