viernes, mayo 31, 2024
HomeTecnologíaProgramacionAlgoritmo Ordenamiento Burbuja Ensamblador

Algoritmo Ordenamiento Burbuja Ensamblador

Hace poco en la universidad me toco programar  este ordenamiento en lenguaje ensamblador  (asm) y la verdad no estan facil como programar en lenguajes de alto nivel (Java,C,C++,etc).  El ensamblador por ser lengueje de nivel que implementa una represantacion simbolica de los codigos de maquina binarios y otras constantes necesarios para programar una arquitectura dada de CPU . Se basa en mnemonicos que simbolizam los pasos de procesamiento , los registros del procesador, las direcciones de memoria y otras caracteristicas del lenjuage.

Es muy sencillo aprenderse cada comando, cada mnemonico , pero estructurar un programa nos lo es. Por eso decidi compartir este algoritmo donde recibe unicamente como parametro la direccion del inicio del arreglo y el tamaño:

Algoritmo del Ordenamiento Burbuja (Bubble Sort)

BubbleSort PROCEDIMIENTO Dir_Arreglo,TamañoArreglo
;Decalcarion de variables locales necesarios
local Valor1, Valor2 , i, j, k,n,bContinuar ,nmenos1

Respaldar Registros necesarios con un push registros o  pusha

   mueve  nmenos1,TamañoArreglo
   restale uno
   Mueve a un Registro Base,Dir_Arreglo
   mueve a j, nmenos1
   mueve i,0
   Mueve a un Registro Indice o Destino,4;
  ;lo anterior 4 para desplazamiento de  tamaño de 32 bits
  ; 2 para 16 bits, 1 para 8 bits
  MIENTRASBCONTINUARES1:
       mueve a BCONTINUAR,0
       mueve a registrobase,Dir_Arreglo
       mueve a j, nmenos1
       FOR1:
            mueve Valor1,[RegistroBase]
            mueve Valor2,[RegistroBase+4]
            ; lo mismo que anteriormente
            ; en este caso el arreglo es de
            ; 32 bits cada elemento

             mueve a registro,[RegistroBase]
             mueve a registro2,[RegistroBase+4]
              Si Valor1>Regitro2
                  intercambia [RegistroBase],[RegistroBase+4]
                  mueve BCONTINUAR,1
                 ; esto impedira que se termine el programa
                 ; y seguir en el bucle hasta dejar
                 ;ordenado el arreglo
             sino

                  decrementa  j
                  suma a RegistroBase,4; 32 bits
                  compara j,0
        Si no es igual FOR1
        MOV un registro,BCONTINUAR
        comparar registro,0
        si es igual SALIR:

  BRINCA A MIENTRASBCONTINUARES1
  SALIR:
  ;Restaurara Todos los Registros respaldados

  ret
BubbleSort FINPROCEDIMIENDO
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments

Michgatubela_1592@hottmail.com on Mas frases , pensamientos para el dia del niño
Los “Circles” llegan a Facebook de foma no oficial | Tecnofull on Google+, el nuevo proyecto (red social ) de Google
carlos alberto castro cabañas on Generador de tarjetas para Feliz Cumpleaños gratis
Como eliminar el botón falso “no me gusta” de Facebook ‹ Tecnofull on Botón No me gusta, fraude / spam que inunda Facebook
Falso profeta del fin del mundo “Harold Camping” ganó 80 millones con farsa del 21 de Mayo 2011 « Genoma Web on Falso profeta del fin del mundo “Harold Camping” ganó 80 millones con farsa del 21 de Mayo 2011
Como eliminar el botón falso “no me gusta” de Facebook | on Botón No me gusta, fraude / spam que inunda Facebook
Manera gráfica de ver las busquedas de google por todo el mundo « Genoma Web on Search Globe, una manera gráfica de ver las búsquedas de Google por todo el mundo
Boda Real del Príncipe William y Catherine Middleton: Transmisión en vivo gratis por internet | TecnoFull on Eduman TV online, ver television de varios paises gratis por internet
Clasificacion de las mujeres geek. | Urban Wave on Clasificacion de las mujeres geek, humor
El problema de los misioneros y los canivabales, incluye codigo en prolog | TecnoFull on Jugar gratis los misioneros y los canibales