Función hoja en ensamblador ARM

Поділитися
Вставка
  • Опубліковано 7 лис 2024

КОМЕНТАРІ • 9

  • @brunonavarreteroman9686
    @brunonavarreteroman9686 2 роки тому +3

    Genio, mil pata en la raja al pelao turin

  • @manuelvazquez5644
    @manuelvazquez5644 3 роки тому +2

    Muy bien explicado para gente como yo que estamos comenzando en el mundo arm.

  • @josex2x
    @josex2x 4 роки тому +2

    Me ha servido muchísimo, con una función tan sencilla la cantidad de conceptos que dejas claros, me ha voy repasar el canal entero

  • @denisaconstantinescu1990
    @denisaconstantinescu1990 4 роки тому +4

    Muy bien explicado!

  • @juuamjskn2420
    @juuamjskn2420 4 роки тому

    perdona soy nuevo, esto com que se compila?

    • @FranciscoCorbera
      @FranciscoCorbera  3 роки тому +1

      Hola, para poder ejecutar el código en una máquina x86 ya sea en windows, linux o Mac, necesitas un emulador de ensamblador ARM. Por ahí hay muchos, yo he desarrollado uno en java que (en principio) funciona en esos tres sistemas operativos, aquí te dejo el enlace (bitbucket.org/corbera/guacarm/src/master/), espero que te sirva. Un saludo.

  • @omarcardona9820
    @omarcardona9820 2 роки тому

    Y si por ejemplo, si tengo un vector y quiero saber cuantos son los numero iguales osea, cuantos numeros dos tengo en el arreglo, como puedo realizarlo???

    • @FranciscoCorbera
      @FranciscoCorbera  2 роки тому

      Hola, suponiendo que a la función hoja le pasaran en el registro r2 el número a que queremos ver cuantos elementos del vector son iguales a él (en tu ejemplo 2), habría que cambiar la instrucción de la función que hace la suma (add r4, r4, r2) por las que compare si es igual al número pasado e incremente si lo es (ya no podríamos usar r2 para leer los valores del vector con ldr ya que he dicho que por r2 nos pasan el número a buscar, usaríamos por ejemplo r3). Quedaría algo así:
      contar:
      push {r4, r5}
      mov r4, #0
      mov r5, #0
      loop:
      cmp r5, r1
      bge exit
      ldr r3, [r0], #4
      cmp r3, r2 // comparamos el valor leído del vector (r3) con el valor que buscamos (r2)
      addeq r4, r4, #1. // si son iguales (eq) incrementamos (add) el valor de r4 para llevar la cuenta de que hemos encontrado una vez más el valor buscado
      add r5, r5, #1
      b loop
      exit:
      mov r0, r4
      pop {r4, r5}

    • @omarcardona9820
      @omarcardona9820 2 роки тому +1

      @@FranciscoCorbera muchas gracias, de verdad que tus vídeos me han servido mucho para mis últimas evaluaciones de ciclo.