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.
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???
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}
Genio, mil pata en la raja al pelao turin
Muy bien explicado para gente como yo que estamos comenzando en el mundo arm.
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
Muy bien explicado!
perdona soy nuevo, esto com que se compila?
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.
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???
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}
@@FranciscoCorbera muchas gracias, de verdad que tus vídeos me han servido mucho para mis últimas evaluaciones de ciclo.