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

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

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